我有一个能够选择它的原始图像(使用imgAreaSelect)。然后我通过坐标 x1= 130, y1 = 70, x2 = 280, y2 = 220 选择它并创建它们的缩小副本,但它不是由所选坐标创建的,不清楚如何创建。即使您手动输入坐标。
第一个.php:
<img src="avatars/default.jpg" id="photo" alt="">
<form action = "second.php" method = "post" >
<input type = "text" name = "x1" value = "" />
<input type = "text" name = "y1" value = "" / >
<input type = "text" name = "x2" value = "" />
<input type = "text" name = "y2" value = "" />
<input type = "text" name = "w" value = "" />
<input type = "text" name = "h" value = "" />
<input type = "submit" name = "submit" value = "Submit" />
</ form>
第二个.php:
<?php
$x1 = $_POST['x1'];
$y1 = $_POST['y1'];
$x2 = $_POST['x2'];
$y2 = $_POST['y2'];
$w = $_POST['w'];
$h = $_POST['h'];
echo "x1 = $x1, y1 = $y1, x2 = $x2, y2 = $y2, w = $w, h = $h";
function resizeimg($filename, $smallimage, $xx, $yy, $w, $h)
{
$ratio = $w/$h;
// получим размеры исходного изображения
$size_img = getimagesize($filename);
// получим коэффициент сжатия исходного изображения
$src_ratio=$size_img[0]/$size_img[1];
$dest_img = imagecreatetruecolor($w, $h);
$src_img = imagecreatefromjpeg($filename);
imagecopyresampled($dest_img, $src_img, 130, 70, 280, 220, $w, $h, $w, $h);
imagejpeg($dest_img, $smallimage);
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
$image = "avatars/default.jpg"; //большое фото
$smallimage = "avatars/default_s.jpg"; // малое фото
if (!resizeimg($image, $smallimage, $x1, $y1, 150, 150))
{ echo "Ошибка при создании уменьшенной копии изображения"; }else {
echo "normasno";
}
?>
发生的事情的照片:


尝试这样做。
其中 130 是 x1,70 是 imgAreaSelect 选择的 y1
也就是你只需要指定第一个上坐标,然后
imagecopyresampled他会计算剩下的点,因为你会传递宽度/高度(150x150)。问题原来是服务器上的原始图像大于其在站点上的显示。为了解决这个问题,有必要首先将原始图像编辑为网站上的大小