旋转后获取新的裁剪坐标

Posted

技术标签:

【中文标题】旋转后获取新的裁剪坐标【英文标题】:Get new crop coordinates after rotation 【发布时间】:2013-06-12 06:49:13 【问题描述】:

我有一个网站,其中一项功能允许用户旋转/裁剪图像。我正在使用以下工具: - 假设旋转 - Jcrop

在旋转到 90 或 -90 之前,裁剪坐标是正确的,但在旋转之后,这些坐标不再正确。 我试图改变坐标如下:

newX ->croppingCoordinates.w -croppingCoordinates.y - 1 newY ->croppingCoordinates.x

请注意,croppingCoordinates 是“onChange”jcrop 事件产生的 jcrop 坐标。

知道计算错误的地方吗?!!

在此感谢您

【问题讨论】:

【参考方案1】:

我发现我转身对我有用,也许它会帮助其他人。 只需在将 Jcrop 方法附加到 div 时添加 trueSize Jcrop 属性即可。因此,当我将图像旋转 90 度时,我只需设置宽度 = 高度,反之亦然。像下面的代码sn-p:

if (rotationDegree == 90 || rotationDegree == -90 )
    w =  $('#myDiv').height();
    h = $('#myDiv').width();
    jQuery(function ($) 
                $('#myDiv').Jcrop(
                    onChange: showCoords,
                    keySupport: false,
                    trueSize: [w, h]
                , function () 
                    jcrop_api = this;
                );
            ); 

【讨论】:

以上是关于旋转后获取新的裁剪坐标的主要内容,如果未能解决你的问题,请参考以下文章

图像旋转的原理

图像旋转算法与实现

如何从文件中旋转和裁剪 iOS CGImage

HTML5 Canvas:旋转后获取矩形坐标(相对于屏幕)

旋转后 UIView 坐标被交换但 UIWindow 不是?

裁剪后 UIImage 旋转 90 度