Изменение размера изображений с помощью GD без потери цвета

#php #gd

#php #gd

Вопрос:

Я пытаюсь изменить размер изображения с помощью GD и вижу потерю цвета на измененном изображении. Вот мой код:

 $src = imagecreatefromstring(file_get_contents($source)); 
ImageCopyResized($dst, $src, 0, 0, 0, 0, $t_width, $t_height, ImageSX($src), ImageSY($src)); 
Imagejpeg($dst, $dest, 90);
  

Комментарии:

1. Возможно, потому, что вы выводите JPEG с качеством 90%? он же повторное сжатие

2. @simshaun Нет, если я установлю 100% качество, цвета будут одинаковыми

3. Пожалуйста, определите «потерю цвета» или предоставьте параллельное сравнение двух изображений.

Ответ №1:

Используете ли вы imagecreatetruecolor при объявлении $dst ?

Ответ №2:

Правильный способ сделать это:

 $dst = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($dst, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);