画像処理にPHPを使用する場合、 ImageAntialias()は簡単に見落とされる関数です。ただし、画質、特にラインと滑らかなエッジの表示に大きな影響を与えます。それで、この機能は正確に何をしますか?オンとオフをオンにすることの違いは何ですか?例と比較図をご覧ください。
ImageAntialias()は、PHP GDライブラリで使用される関数です。アンチエイリアシングの役割は、エッジを滑らかにし、線、曲線、対角線をより自然に見せ、ジャグ感を減らすことです。
構文は次のとおりです。
bool imageantialias(GdImage $image, bool $enable): bool
$画像はターゲット画像リソースです。
$ enableがtrueの場合、アンチエイリアシングがオンになっている場合、 falseの場合、オフになります。
以下では、サンプルコードを介して2つの同一の画像を生成しますが、1つはアンチアリアーシングが有効になり、もう1つは存在しないことを除きます。
<?php
$img = imagecreatetruecolor(200, 200);
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $white);
// アンチエイリアシングは有効になりません
imageantialias($img, false);
imagearc($img, 100, 100, 150, 150, 0, 360, $black);
imagepng($img, 'circle_no_antialias.png');
imagedestroy($img);
?>
画像アドレスを生成: https://m66.net/images/circle_no_antialias.png
<?php
$img = imagecreatetruecolor(200, 200);
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $white);
// アンチエイリアシングを有効にします
imageantialias($img, true);
imagearc($img, 100, 100, 150, 150, 0, 360, $black);
imagepng($img, 'circle_antialias.png');
imagedestroy($img);
?>
画像アドレスを生成: https://m66.net/images/circle_antialias.png
次の2つの画像の違いをご覧ください。
アンチアリアシングは有効になりません: https://m66.net/images/circle_no_antialias.png
抗Aliasをオンにしてください: https://m66.net/images/circle_antialias.png
図からわかるように、アンチエイリアシングがオンになった後は円が滑らかになり、アンチエイリアスのある画像は、エッジに不規則なラインが表示されている状態でオフになります。
ImageAntialias()は強制機能ではありませんが、アンチアリアー剤をオンにすると、微細なエッジ(アイコン、曲線、テキストのアウトラインなど)を必要とする画像を処理するときに画像品質を大幅に向上させることができます。唯一の価格はもう少し処理時間ですが、このオーバーヘッドはほとんどのアプリケーションシナリオで受け入れられます。
出力画像の美しさを気にかけている場合は、 ImageAntialias($ image、true)を追加することを忘れないでください。描画する前に、小さな設定により、画像処理効果がよりプロフェッショナルに見えるようになります!