Я создал скрипт обрезки и изменения размера изображения с использованием 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);
Однако окончательное изображение теряет много цвета и насыщенности.
Исходное изображение
Изображение после загрузки
Я надеюсь, что кто-то может указать мне правильное направление, чтобы выяснить, почему цвет меняется и как это исправить. Я искал здесь и на других сайтах уже несколько дней, но безуспешно. Спасибо.