imagesavealpha

画像を保存する際に、完全なアルファチャネル情報を保存するかどうかを指定する

説明

bool imagesavealpha(GdImage $image, bool $enable)

imagesavealpha は 画像を保存する際に(単一色の透過設定ではない)完全な アルファチャネル情報を保存するフラグを設定します。 この関数は、完全なアルファチャンネル情報をサポートしている画像フォーマット、 つまり、PNG, WebP, AVIF をサポートしています。

注意: imagesavealpha は、PNG でのみ意味があります。 なぜなら、完全なアルファチャンネル情報を WebP, AVIF は常に保存するからです。 この振る舞いは将来変更される可能性があるので、依存すべきではありません。 よって、WebPAVIF 画像であっても imagesavealpha を意図的にコールすべきです。

アルファチャネルを保存するためには、まずアルファブレンディングを解除する必要があります (imagealphablending($im, false))。

パラメータ

image

imagecreatetruecolorのような画像作成関数が返す GdImage オブジェクト。

enable

アルファチャネルを保存するか否か。デフォルトは false です。

戻り値

成功した場合に true を、失敗した場合に false を返します。

変更履歴

バージョン 説明
8.0.0 image は、 GdImage クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な gd resource が期待されていました。

例1 基本的な imagesavealpha の使用法

<?php
// アルファチャネルつきの png 画像を読み込みます
$png = imagecreatefrompng('./alphachannel_example.png');

// アルファブレンディングを無効にします
imagealphablending($png, false);

// 望んだ操作をします

// アルファフラグを設定します
imagesavealpha($png, true);

// 画像をブラウザに出力します
header('Content-Type: image/png');

imagepng($png);
imagedestroy($png);
?>

参考

  • imagealphablending