2011-10-22 18 views
6

sto cercando di unire due immagini - un'immagine GIF con un'immagine più piccola JPG. L'output dovrebbe essere GIF.Unisci immagini in PHP - GIF e JPG

Il problema è cheGIF colori dell'immagine restano corretta, ma i colori dell'immagine JPG sono alterati.

L'immagine GIF ha solo 256 colori (8 bit), ma c'è un modo per rendere l'immagine unita ad essere una risorsa true-color che in seguito può essere convertito in un 8-bit GIF per produzione?


Problema risolto.


ho aggiornato il codice. Ecco la soluzione che funziona bene:

<?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); 

?> 

risposta

5

Dalla tua spiegazione (un codice aiuterebbe), vorrei tentare di indovinare si uniscono il jpeg sul gif. Il modo più semplice è utilizzare imageCreateTrueColor per creare una nuova immagine della dimensione necessaria, quindi utilizzare imagecopy per copiare la GIF in questa nuova immagine. Unisci il jpg su questo e poi in un secondo momento puoi nascondere l'immagine del vero colore a una gif.

Se mi manca qualcosa, un po 'di codice di esempio di ciò che stai facendo potrebbe essere d'aiuto.

+0

Sì ** imageCreateTrueColor ** funziona perfettamente. Forse, usare ** imagecopy ** invece di ** imagecopymerge ** è una buona idea. Grazie! – acoder

Problemi correlati