从CSS转换中裁剪PHP图像

从CSS转换中裁剪PHP图像,php,css,image,imagemagick,wideimage,Php,Css,Image,Imagemagick,Wideimage,我目前正在为客户端构建一个图像裁剪工具。前端允许用户上传图像、放大/缩小和平移缩放的图像,直到他们满意为止 这一切都很好,当我需要裁剪此图像时,它开始变得复杂。工具使用css转换放大和缩小并处理平移。当我将此内容发布到我的PHP脚本时,我得到一个数组,如下图所示: ( [0] => 0.4095092758326518 [1] => 0 [2] => 0 [3] => 0.4095092758326518 [4] => -1257.469970703125

我目前正在为客户端构建一个图像裁剪工具。前端允许用户上传图像、放大/缩小和平移缩放的图像,直到他们满意为止

这一切都很好,当我需要裁剪此图像时,它开始变得复杂。工具使用css转换放大和缩小并处理平移。当我将此内容发布到我的PHP脚本时,我得到一个数组,如下图所示:

(
[0] => 0.4095092758326518
[1] =>  0
[2] =>  0
[3] =>  0.4095092758326518
[4] =>  -1257.469970703125
[5] =>  -441.6499938964844
)
我已经计算出[0]是一个比例因子,[4]和[5]是我的x,y位置,为了得到正确的位置,我将我的x和y位置除以键0中的比例因子

然后,我需要获得我要裁剪到的视口的宽度和高度(例如329px 237px这是按比例因子0.277缩小的(最终输出需要放大以匹配此比例)

我正在使用WideImage php库,但也可以访问imageMagick

用于计算最终x、y、宽度和高度值的代码如下所示:

$width = $vport['w']/$scale;
$height = $vport['h']/$scale;
$posY = (abs($matrix[5]))/$matrix[0];
$posX = (abs($matrix[4]))/$matrix[0];
其中,$matrix是我的CSS变换数组,$scale是=0.277

这似乎不起作用,但在某些缩放级别,它会断裂。我明白我可能不清楚什么是错的,或者问题是什么。老实说,我不了解自己。如果有人建造了这样的东西,或者对我可能会犯的错误有一些建议,那就太好了


Tom:)

我也做了类似的事情,采取了处理所有图像处理服务器端的方法(imagick——我比wideimage/gd更喜欢它),然后通过ajax加载它。这样你就不会有重复的逻辑代码。@hendr1x听起来很有希望,你是如何处理图像的缩放的?我假设你裁剪了图像,然后使用了imagemagick允许平移的偏移量?是的…这真的很痛苦,因为我允许将空白添加到图像中…如果你愿意,我会为你发布代码…这不会是偶然的,但会让你对我的方法有一个想法。