質問
どのようにPNG-8として、GDで作成し、自分の画像を保存することは可能でしょうか?
それがうまく透明チャネルにGIFとして保存されます - 。しかし、私は、PNG-8を使用したい。
よろしく、 Beerweasle
解決
トリックを行う必要がありimagesavealpha()と透明BGの色を使用して...
dfilkoviのコードに基づきます:
<?php
// Create a new true color image
$im = new imagecreatetruecolor(100, 100);
// Fill with alpha background
$alphabg = imagecolorallocatealpha($im, 0, 0, 0, 127);
imagefill($im, 0, 0, $alphabg);
// Convert to palette-based with no dithering and 255 colors with alpha
imagetruecolortopalette($im, false, 255);
imagesavealpha($im, true);
// Save the image
imagepng($im, './paletteimage.png');
imagedestroy($im);
?>
他のヒント
@Sonny
偽仮定:任意のビット深度のPNGは透明性を持つことができます。これは、CFフォーマット定義
(トゥルーカラーのものを除く)PNG画像のtRNS塊に記録されていますCF www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html#C.tRNS
同上www.w3.org/TR/PNG-Chunks.html#C.tRNS
違いは、記録がどのようである:RGBAは、独自のチャンクにPNGレコードのアルファチャンネルを「パレット」4つの値(3色と1アルファチャンネル)の画素ごとに固有のレコードを、有している
。花火はそれで非常に良いです。
例:
私は($イム、$ alphabg)ラインimagecolortransparentを追加する必要がありました。これが機能するために、次のコードに(前の回答から撮影):
を
// Fill with alpha background
$alphabg = imagecolorallocatealpha($im, 0, 0, 0, 127);
imagecolortransparent($im, $alphabg);
imagefill($im, 0, 0, $alphabg);
// Convert to palette-based with no dithering and 255 colors with alpha
imagetruecolortopalette($im, false, 255);
imagesavealpha($im, true);
// Save the image
imagepng($im, './paletteimage.png');
imagedestroy($im);
?>
私は、これはあなたを助けることができると思います。
http://roseindia.net/tutorial/php/phpgd/About -transparent.htmlする
<?php
// Create a new true color image
$im = new imagecreatetruecolor(100, 100);
// Convert to palette-based with no dithering and 255 colors
imagetruecolortopalette($im, false, 255);
// Save the image
imagepng($im, './paletteimage.png');
imagedestroy($im);
?>
これは8ビットのPNG
にする必要があります
dfilkoviのソリューションに
ビル、あなたは完全なアルファチャネル情報を保存するために imagesavealpha()に使用して試してみました?
所属していません StackOverflow