我正在從另外兩個人創建一個PNG圖像。使用GD與PHP合併圖像
圖片A和B具有相同的尺寸,它們都是200x400px。最後的圖像是一樣的。
我在PHP中使用GD庫。
所以我的想法是從我的原始PNG-8創建一個PNG-24,然後使用顏色透明度,最後將第二個圖像複製到 這個新的PNG-24。從PNG-24將PNG-8時,有透明色的問題出現在第一步反正:
這是爲了獲得原始PNG-8,它的尺寸:
$png8 = imagecreatefrompng($imageUrl);
$size = getimagesize($imageUrl);
現在我創建新PNG和填補它的背景爲綠色(不存在的圖像):
$png24 = imagecreatetruecolor($size[0], $size[1]);
$transparentIndex = imagecolorallocate($png24, 0x66, 0xff, 0x66);
imagefill($png24, 0, 0, $transparentIndex);
這是爲了使綠色透明:
imagecolortransparent($png24, $transparentIndex);
然後我的PNG8複製到PNG-24:
imagecopy($png24, $png8, 0, 0, 0, 0, $size[0], $size[1]);
所以這裏的問題:原來的PNG-8看起來不錯,但它周圍的原始圖像中的形狀的綠色邊框。真的很難解釋。似乎綠色背景的某些部分留在剩餘的PNG中。
我該怎麼辦?
在此先感謝
最好的問候,
費爾南多
我可以結合兩個圖像下面的代碼。我現在遇到的問題是其中一個圖像有陰影。現在,當我使用imagecopy或imagecopyresampled時,它似乎像這個陰影(灰色降級)與我在背景中設置的透明顏色相結合,導致最終圖像幾乎完美,但被前面設置的背景透明顏色包圍,醜陋綠色。 當我得到這個,我嘗試使用透明的PNG,但這些像素又是一個問題:我得到某種模糊。這聽起來像是一個圖像問題,與編程無關。 –