0
這讓我很頭疼。我想合併2個透明的PNG。GD2 - 複製兩個透明圖像導致黑色背景
其中一個是從方形圖像中隨時產生的圓形($源)。 第二個是地圖標記($ marker),帶有一個透明圓以適應第一個後面。
imagepng($ source);和imagepng($ marker);輸出就像人們所期望的那樣。 具有透明背景。
我然後創建一個空的透明圖像的標記的大小將它們兩者一起:
//NEW BLANK TRANSPARENT IMAGE
$dest = imagecreatetruecolor(50, 61);
$transparent = imagecolorallocatealpha($dest, 0, 0, 0, 127);
imagefill($dest, 0, 0, $transparent);
imagealphablending($dest, true);
imagesavealpha($dest,true);
//COPY THE CIRCLE
imagecopy($dest, $source, 5, 5, 0, 0, 41, 41);
//AND THE MARKER ON TOP
imagecopy($dest, $marker, 0, 0, 0, 0, 50, 61);
在結果中,圓圈顯示爲與內圓上的黑色正方形。 我嘗試了很多imagealphablending和imagesavealpha的組合,在$ source和$ dest上都沒有任何效果。
如何刪除黑色方塊,並將結果中的$ source透明,因爲它在合併之前?
我剛剛用2張透明圖片試過了你的代碼,它對我很有用。用'imagecolortransparent($ dest,$ blackColor)試過;'? – Uby
剛剛做到了。儘管它可能與圖片中的其他黑人發生衝突。仍然沒有工作。 – Bruno
這裏的問題是在圓形面具。它可以很好地處理它自己的內容,但是當它複製到另一個圖像上時,它會爲其添加黑色背景。 – Bruno