imageantialias

アンチエイリアス機能を使用すべきかどうかを判断する

説明

bool imageantialias(GdImage $image, bool $enable)

直線や多角形を高速に描画するためのアンチエイリアス機能を有効にします。 アルファコンポーネントはサポートしていません。ダイレクトブレンド操作を 使用します。truecolor 画像に対してのみ動作します。

thickness および styled はサポートしていません。

背景色が透明な場合にアンチエイリアス機能を使用すると、予期せぬ結果に 終わることがあります。ブレンドメソッドでは、背景色が使用されます。 アルファコンポーネントをサポートしていないため、アルファコンポーネントに 基づいたアンチエイリアス手法は使用できません。

パラメータ

image

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

enable

アンチエイリアスを有効にするかどうか。

戻り値

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

変更履歴

バージョン 説明
8.0.0 image は、 GdImage クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な gd resource が期待されていました。
7.2.0 imageantialias が常に使えるようになりました。 これまでのバージョンでは、PHP にバンドルされている GD ライブラリでコンパイルした場合にしか使えませんでした。

例1 2 本の直線のうち一方にアンチエイリアスを有効にする

<?php
// アンチエイリアス画像と通常の画像を用意します
$aa = imagecreatetruecolor(400, 100);
$normal = imagecreatetruecolor(200, 100);

// アンチエイリアスを有効にします
imageantialias($aa, true);

// 色を割り当てます
$red = imagecolorallocate($normal, 255, 0, 0);
$red_aa = imagecolorallocate($aa, 255, 0, 0);

// 一方はアンチエイリアスを有効にした状態で 2 本の直線を描画します
imageline($normal, 0, 0, 200, 100, $red);
imageline($aa, 0, 0, 200, 100, $red_aa);

// ふたつの画像を横に並べて出力します (アンチエイリアス: 左、通常: 右)
imagecopymerge($aa, $normal, 200, 0, 0, 0, 200, 100, 100);

// 画像を出力します
header('Content-type: image/png');

imagepng($aa);
imagedestroy($aa);
imagedestroy($normal);
?>

上の例の出力は、 たとえば以下のようになります。

出力例 : 2 本の直線のうち一方にアンチエイリアスを有効にする

参考

  • imagecreatetruecolor