【发布时间】:2012-02-22 21:06:31
【问题描述】:
我在一个正好是 424x318 的图像之上有以下图像
它被包裹在一个 444x338 的 div 中。
我有一个 185x185 的“裁剪工具”(圆形中心部分),但可以调整为最小 50x50 和最大约 300x300(取决于放置)。
裁剪工具的顶部“边框/边距”为 28 像素,左侧“边框/边距”为 20 像素(这些是占据制表符的尺寸,以及紫色线条和白色的东西。但是它可以调整大小,这将通过调整大小百分比增加边框/边距(因此,如果整个事物变为 1.5,则比例将为 *1.5)。
裁剪工具的总尺寸也是 185x185 WxH。
标准位置是中心(66x120)。
好的,既然我们已经解决了所有这些问题,我在尝试找到传递给 imagemagick 进行处理的中心和一个点时遇到了问题。我目前有以下
// Get variables
$left = $val->pos['0']; // this is posted from jquery, using position();
$top = $val->pos['1']; // this is posted from jquery, using position();
$scale = $val->scale; // this is posted from jquery, using width/185
$img = $val->image; // background image
$h = $scale*185;
// CENTER OF THE CIRCLE
$c1 = ($h*.5)+$left-20;
$c2 = ($h*.5)+$top-10;
// LEFT SIDE
$c3 = $left+(20*$scale)-10;
$c4 = ($h*.5)+$top-10;
$scalesize = $c1.",".$c2." ".$c3.",".$c4;
// Crop Size WxH+X+Y
$cr1 = $h-(40*$scale)-17;
$cr2 = $h-(40*$scale)-14;
$cr3 = $left-(20*$scale)+28;
$cr4 = $top+(20*$scale)-3;
$cropsize = $cr1."x".$cr2."+".$cr3."+".$cr4;
然后我将它传递给 imagemagick 使用
$return = exec('convert -size 424x318 xc:none -fill 'filename' -draw "circle '.$scalesize.'" -crop '.$cropsize.' +repage '.newfilename);
我终其一生都无法弄清楚我做错了什么。我一直在玩我最后减去的##,它最终只适用于一种尺寸,但是当我调整裁剪工具的大小时,它把它弄乱了......有什么帮助吗?
【问题讨论】:
标签: php jquery math imagemagick crop