Загрузка, повторная выборка и копирование сценария изображения изменяет цвета изображения - PullRequest
0 голосов
/ 17 марта 2019

Я создал скрипт обрезки и изменения размера изображения с использованием 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);

Однако окончательное изображение теряет много цвета и насыщенности.

Исходное изображение

Изображение после загрузки

Я надеюсь, что кто-то может указать мне правильное направление, чтобы выяснить, почему цвет меняется и как это исправить. Я искал здесь и на других сайтах уже несколько дней, но безуспешно. Спасибо.

...