我使用PHP和JavaScript进行了图像裁剪和调整大小的脚本。用户选择坐标后,脚本将使用此脚本上载,重新采样并复制图像。它们都是JPEG图像。
$maxWidth=$maximumWidth;
$maxHeight=$maximumHeight;
list($width, $height)=getimagesize($f['img']['tmp_name']);
$source = imagecreatefromstring(file_get_contents($f['img']['tmp_name']));
$destination = imagecreatetruecolor($maxWidth, $maxHeight);
// COORDINATES
if(isset($p['x']) && isset($p['y']) && isset($p['w']) && isset($p['h'])){
$x=$p['x'];
$y=$p['y'];
$target_width=$p['w'];
$target_height=$p['h'];
}
else{
if($width>$height){
$center=$width/2;
$halfbox=$height/2;
$x=$center-$halfbox;
$y=0;
$target_width=$height;
$target_height=$height;
}
if($height>=$width){
$center=$height/2;
$halfbox=$width/2;
$x=0;
$y=$center-$halfbox;
$target_width=$width;
$target_height=$width;
}
}
// END COORDINATES
imagecopyresampled($destination, $source, 0, 0, $x, $y, $maxWidth, $maxHeight, $target_width, $target_height);
imagedestroy($source);
imagejpeg($destination, $_SERVER['DOCUMENT_ROOT'].$path.'.jpg', 100);
imagedestroy($destination);
但是,最终的图像似乎失去了很多色彩和饱和度。
我希望有人能向我指出正确的方向,以弄清楚为什么颜色会改变以及如何解决。我已经在这里和其他网站上搜索了几天,但没有运气。谢谢。