Слияние изображений в PHP - GIF и JPG - PullRequest
7 голосов
/ 23 октября 2011

Я пытаюсь объединить два изображения - изображение GIF с меньшим JPG изображением. Выход должен быть GIF .

Проблема заключается в том, что GIF цвета изображения остаются правильными, но цвета изображения JPG изменяются.

Изображение GIF имеет только 256 цветов (8 бит), но есть способ сделать объединенное изображение реальным цветным ресурсом, который впоследствии можно преобразовать в 8 бит GIF для вывода?


Проблема решена.

Я обновил код. Вот решение, которое отлично работает:

<?php

header('Content-Type: image/gif');

$gif_address = 'file.gif';
$jpg_address = 'file.jpg';

$image1 = imagecreatefromgif($gif_address);
$image2 = imagecreatefromjpeg($jpg_address);

$merged_image = imagecreatetruecolor(800, 800);
imagecopymerge($merged_image, $image1, 0, 0, 0, 0, 800, 800, 100);
imagecopymerge($merged_image, $image2, 0, 0, 0, 0, 500, 500, 100);

imagegif($merged_image);

imagedestroy($image1);
imagedestroy($image2);
imagedestroy($merged_image);

?>

1 Ответ

6 голосов
/ 23 октября 2011

Из вашего объяснения (некоторый код поможет), я рискну предположить, что вы сливаете JPEG в GIF.Я бы сказал, что самый простой способ - использовать imageCreateTrueColor , чтобы создать новое изображение нужного размера, а затем использовать imagecopy , чтобы скопировать GIF в это новое изображение.Объедините jpg с этим, и затем позже вы можете преобразовать изображение истинного цвета в gif.

Если я что-то упустил, может помочь пример кода, который вы сейчас делаете.

...