ファイルシステムにイメージがあります。トリミング ツールを使用してページに表示しますが、トリミング ツール領域に収まるようにサイズを縮小します (画像が領域より小さい場合は、領域全体を占めるように引き伸ばします)。このページで、ユーザーは保持する写真の領域を選択し (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);