有没有办法在使用 cropperjs 裁剪后转换初始照片坐标中的点
Is there a way to transform a point in the initial photo coordinates after a crop with cropperjs
我使用 cropperjs 来裁剪一些图像,我将 getData 方法的结果保存在数据库中,return 图片上的值为白色。
{x, y, width, height, rotate}
我的用户可以在裁剪后的红色图像上放置点 space,有没有办法检索蓝色点的坐标 space?
裁剪比例是自由的,所以原图比例和裁剪比例之间没有关系,我也没有原图尺寸。
感谢您的帮助
首先获取边界框坐标
bbx = redx + x
bby = redy + y
现在围绕边界框中心旋转
bluex = bbcenterx + (bbx - bbcenterx) * Cos(rotate) + (bby - bbcentery) * Sin(rotate)
bluey = bbcentery - (bbx - bbcenterx) * Sin(rotate) + (bby - bbcentery) * Cos(rotate)
如果你不知道边界框大小,但知道初始图片宽度w
和高度h
,你可以计算边界框中心
bbcenterx = (w * Abs(Sin(rotate)) + h * Abs(Cos(rotate))) / 2
bbcenterx = (w * Abs(Cos(rotate)) + h * Abs(Sin(rotate))) / 2
我使用 cropperjs 来裁剪一些图像,我将 getData 方法的结果保存在数据库中,return 图片上的值为白色。
{x, y, width, height, rotate}
我的用户可以在裁剪后的红色图像上放置点 space,有没有办法检索蓝色点的坐标 space?
裁剪比例是自由的,所以原图比例和裁剪比例之间没有关系,我也没有原图尺寸。
感谢您的帮助
首先获取边界框坐标
bbx = redx + x
bby = redy + y
现在围绕边界框中心旋转
bluex = bbcenterx + (bbx - bbcenterx) * Cos(rotate) + (bby - bbcentery) * Sin(rotate)
bluey = bbcentery - (bbx - bbcenterx) * Sin(rotate) + (bby - bbcentery) * Cos(rotate)
如果你不知道边界框大小,但知道初始图片宽度w
和高度h
,你可以计算边界框中心
bbcenterx = (w * Abs(Sin(rotate)) + h * Abs(Cos(rotate))) / 2
bbcenterx = (w * Abs(Cos(rotate)) + h * Abs(Sin(rotate))) / 2