我的文件系统上有一个图像。我使用裁剪工具将其显示在页面上,但我将其缩小以适合裁剪工具区域(如果图像小于该区域,则将其拉伸以占据整个区域)。在此页面上,用户将选择要保留的照片区域(使用 jcrop)并提交。
在后端,我将等待上一页的坐标。我将得到 x1、x2、y1、y2、w 和 h。
问题是调整大小的图像(显示给用户的图像)上的坐标在全尺寸图像上并不容易使用,因为它们要么占小于图像的区域(它被缩小以适合屏幕)或者它会比图像大(它被拉伸以适应屏幕)。
我可以获得原始照片的高度和宽度以及它被强制进入的静态宽度和高度。
给定已知尺寸,您将如何找到图像的正确区域?
我当前的代码在这里
$target_width = 150;
$target_height = 150;
$jpeg_quality= 90;
$tmp =explode('/',$_POST['filename']);
$src = '../uploads/'.$tmp[count($tmp)-1];
$x1 = $_POST['x1'];
$x2 = $_POST['x2'];
$y1 = $_POST['y1'];
$y2 = $_POST['y2'];
$w = $_POST['w'];
$h = $_POST['h'];
$image = imagecreatefromjpeg($src);
$final = imagecreatetruecolor($target_width, $target_height);
imagecopyresampled($final, $image, 0, 0, $x1, $y1, $target_width, $target_height, $w, $h);
imagejpeg($final, $src, $jpeg_quality);