私はGDを使って画像のサイズを変更して変換していますが、テスト中に透明なPNGをJPEGに変換すると奇妙な動作が見つかりました。マニュアルではImageAlphaBlending()がデフォルトでオンになっていますが、透明度を維持するためにはImageSaveAlpha()をtrueに設定する必要があります(ImageAlphaBlending()をfalseに設定する必要があります)。したがって正しい方法は:PHP/GD ImageSaveAlphaとImageAlphaBlending
です。しかし、もし私がそれを行うと、すべての透明領域がJPEGで黒く表示されます。
$result = ImageCreateFromPNG(...);
ImageAlphaBlending($result, true); // true by default, but still...
ImageSaveAlpha($result, true);
ImageFill($result, 0, 0, IMG_COLOR_TRANSPARENT);
ImageJPEG($result);
ImageDestroy($result);
私はこのテーマについて私に教えてもらえますか?
大変申し訳ございません。 JPEG形式のAfaik画像は、その点で「透明」な背景やアルファチャンネルを持つことはできません。 – merkuro
ええ、私はそれを知っています。私は元のPNG画像のすべての透過領域をJPEG出力で白に変換したいだけです。申し訳ありませんが私は十分に自分自身を説明していない場合。 –