こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

GD.pmでアルファチャンネルを持ったPNG合成がうまくいきません

GD.pm 2.32 + Perlで、二つのPNG画像合成を試みています。
しかしpngのアルファチャンネル部分がスムーズに合成できません。
以下のソースで合成はできたものの、アルファチャンネル部分が透明ではない通常のドットとして合成されます。

1.png・・・赤い四角い画像
2.png・・・白い丸画像で、境界線はアルファチャンネル(PNG32)

-----ここから
$png_image = "1.png";
$png_image2 = "2.png";

$image = new GD::Image(100,100);

$image2 = newFromPng GD::Image($png_image);
($image2_width,$image2_height) = $image2->getBounds() ;
$image->copy($image2,0,0,0,0,$image2_width,$image2_height);

$image3 = newFromPng GD::Image($png_image2);
($image3_width,$image3_height) = $image3->getBounds() ;
$image->copy($image3,0,0,0,0,$image3_width,$image3_height);

$image = &image_tranparent_comp($png_image, 1, 1, $image);

print "Content-type:image/png\n\n";
binmode STDOUT;
print $image->png;
-----ここまで
文字数の関係で「&image_tranparent_comp」を省略しています。
Googleで検索すれば、参考にしたサイトが出てきます。

原因がお分かりでしたら教えてください。
よろしくお願いいたします。

投稿日時 - 2006-08-17 11:16:40

QNo.2344442

困ってます

質問者が選んだベストアンサー

$image = new GD::Image(100,100);
     ↓
$image = new GD::Image(100,100,1);

こうしないと、8ビットイメージになってしまいます。
8ビットイメージ上では、アルファブレンドなどがきちんと行われません。

投稿日時 - 2006-08-17 11:39:26

お礼

なるほど!
ありがとうございました。m(_ _)m

投稿日時 - 2006-08-17 16:22:30

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問