上载,重新采样和复制图像脚本正在更改图像的颜色

时间:2019-03-16 23:08:03

标签: php imagejpeg

我使用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);

但是,最终的图像似乎失去了很多色彩和饱和度。

Original image

Image after upload

我希望有人能向我指出正确的方向,以弄清楚为什么颜色会改变以及如何解决。我已经在这里和其他网站上搜索了几天,但没有运气。谢谢。

0 个答案:

没有答案