2011-10-22 7 views
6

は、私が二つの画像をマージしようとしています。出力はGIFである必要があります。はPHPで画像をマージ - 小さな<strong>JPG</strong>画像で<strong>GIF</strong>画像 - GIFやJPG

問題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); 

?> 

答えて

5

あなたの説明から、(いくつかのコードが役立つだろう)、私はあなたがGIFにJPEGをマージしている推測をハザードになります。ここでは正常に動作しますソリューションです。 IDはimageCreateTrueColorを使用して必要なサイズの新しい画像を作成し、imagecopyを使用してこの新しい画像にGIFをコピーするのが最も簡単な方法です。 JPGをこれにマージして、後で真のカラー画像をgifに変換することができます。

何か不足している場合は、現在行っていることのコードの一部が役立つかもしれません。

+0

はい** imageCreateTrueColor **は完全に機能します。 ** imagecopymerge **の代わりに** imagecopy **を使用するのは良い考えです。ありがとうございました! – acoder

関連する問題