Как убрать искажение цветов при использовании «ImageCopyResized()»?

  • Автор темы Автор темы evgkuz
  • Дата начала Дата начала

evgkuz

Новичок
Как убрать искажение цветов при использовании «ImageCopyResized()»?

Как убрать искажение цветов при использовании «ImageCopyResized()»?


Последовательность действий
Getimagesize(); // определяем размер текущей картинки
ImageCreateFromJPEG(); // получаем идентификатор текущей картинки
ImageCreate(); // создаём новую картинку
ImageColorAllocate(); // фон
ImageCopyResized(); // пропорционально изменяем размер
ImageJPEG(); // сохраняем результат

Картинка получается по размеру и содержанию – нормальной. Но вот цветовая гамма искажается, иногда довольно сильно. Причём при таких же действиях с GIF-файлами искажений цвета – нет.

Складывается такое впечатление, что ”GD” не справляется с JPEG-файлами из-за большего количества цветов в них.

Так это или нет?

Может, для сохранения цветовой гаммы, нужно использовать какую-то дополнительную команду?

Конфигурация:
PHP Version 4.3.4
GD bundled (2.0.15 compatible)
 
imagecreate() -> [m]imagecreatetruecolor[/m]()
imagecopyresized() -> [m]imagecopyresampled[/m]()
всё это находится в поиске и не один раз.
 
Я эту проблему решал создавая нновую картинку функцией ImageCreateTrueColor()

И по-моему копировать во втором ГД лучше используя ImageCopyResampled()
 
Сверху