2011-07-21 32 views
1

ドロップシャドウ(アルファチャンネル)と透明な背景を持つPNG画像を複製しようとしました。しかし、結果として得られる画像は影と透明な背景を黒で塗りつぶします。私はimagecopyimagecopymergeで試しました。元の画像と同じではない有効な結果が得られませんでした。ドロップシャドウと透明な背景を持つ画像をコピーする

Preview of the images.

$src = imagecreatefrompng('img_box3-bg.png'); 

/* Using imagecopy. */ 
$dest = imagecreatetruecolor(116, 100); 
imagecopy($dest, $src, 0, 0, 0, 0, 116, 100); 
imagepng($dest, 'img_box3-bg.imagecopy.png'); 
imagedestroy($dest); 

/* Using imagecopymerge. */ 
$dest2 = imagecreatetruecolor(116, 100); 
imagecopymerge($dest2, $src, 0, 0, 0, 0, 116, 100, 100); 
imagepng($dest2, 'img_box3-bg.imagecopymerge.png'); 
imagedestroy($dest2); 

imagedestroy($src); 

ヘルプ?事前に感謝します。このような

答えて

3

何か:

$src = imagecreatefrompng('img_box3-bg.png'); 

/* Using imagecopy. */ 
$dest = imagecreatetruecolor(116, 100); 

// this is new 
imagesavealpha($dest, true); 
$transparent = imagecolorallocatealpha($dest, 0, 0, 0, 127); 
imagefill($dest, 0, 0, $transparent); 

imagecopy($dest, $src, 0, 0, 0, 0, 116, 100); 

header('Content-Type: image/png'); 
imagepng($dest); 
imagedestroy($dest); 
+0

私はあなたの代わりに上記のスニペットで、 '$のimg'の' $のdest'を意味だと思います。これは残念なことにトリックをしませんでした。リンク/プレビューページをもう一度見てください。私は提案された方法を使って新しいイメージを追加しました。 – moey

+0

@ Siku-Siku.Comが例を変更しました。これは私のテストマシンで動作しています。それが役に立てば幸い! – Yoshi

+0

Splendid!それは魅力のように働く。ありがとうございました。 – moey

関連する問題