PHPのGDライブラリでは、特に画像を動的に生成するか、画像を処理する必要がある場合、画像描画は非常に重要な機能です。描画された線をより滑らかで美しくするために、2つの機能はvicageantialias()とimageetthickness()を一緒に使用することがよくあります。この記事では、これらの2つの機能の機能と、画像描画効果を最適化するのに役立つ組み合わせの方法について詳しく説明します。
ImageAntialias()は、画像のアンチエイリアシング効果を有効またはオフにするために使用されます。ジャグとは、スラッシュまたは曲線を描画するときに表示されるギザギザのエッジを指し、画像が十分に滑らかに表示されないようにします。
bool imageantialias ( resource $image , bool $enabled )
$画像:画像リソース。
$ enabled :アンチエイリアシングを有効にするかどうか、 trueは有効になり、 falseがオフになります。
アンチエイリアスが有効になると、描画された線のエッジがより滑らかになり、より良い視覚効果が得られます。
ImagesEtthickness()は、ラインの厚さを設定するために使用され、デフォルトの線幅は1ピクセルです。
bool imagesetthickness ( resource $image , int $thickness )
$画像:画像リソース。
$厚さ:ラインの厚さは整数であり、1以上でなければなりません。
ラインの厚さを合理的に調整し、アンチエイリアシングを組み合わせると、画像がより豊かで層状になります。
以下は、ImageAntialias()とImagesetthickness()を使用して図面効果を最適化する方法を示す簡単な例です。
<?php
// 空白の画像を作成します,幅300,高い150
$image = imagecreatetruecolor(300, 150);
// 色を定義します
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$red = imagecolorallocate($image, 255, 0, 0);
// 白で満たされた背景
imagefilledrectangle($image, 0, 0, 299, 149, $white);
// アンチエイリアシングを有効にします
imageantialias($image, true);
// ラインの厚さをに設定します5ピクセル
imagesetthickness($image, 5);
// 赤いスラッシュを描きます
imageline($image, 10, 140, 290, 10, $red);
// 出力画像
header('Content-Type: image/png');
imagepng($image);
// 無料のメモリ
imagedestroy($image);
?>
この例では:
イメージャーティアリアス($ Image、True)でアンチエイリアシングを有効にして、スラッシュのエッジをよりスムーズにします。
ImagesEtthickness($ Image、5)を使用して、線の厚さを5に設定して、線がより厚くなり、目を引くようになります。
アンチエイリアスがオフになると、ジャグは明らかに線の端に現れ、美学に影響します。
アンチエイリアシングを有効にする:アンチエイリアスをオンにすると、スラッシュまたは曲線を描くときに視覚効果を大幅に改善できます。
線の厚さを調整します:さまざまなシナリオでニーズに応じて異なるラインの厚さを設定します。細い線は細かい描画に使用され、厚い線が強調に使用されます。
パフォーマンスの考慮事項:アンチエイリアシングをオンにすると、図面時間がわずかに増加し、緩やかに使用して、大量の図面を必要とするシナリオのパフォーマンスに影響を及ぼさないようにします。
他の描画関数と組み合わせること: ImagePolygon() 、 ImageArc() 、 ImageEctangle()などの関数と組み合わせることができます。画像全体の描画効果を最適化します。
ImageAntialias()は、 ImageLine() 、 ImagePolygon()などの関数によって描かれた線に対してのみ有効であり、塗りつぶし領域では無効です。
すべてのPHPバージョンとGDライブラリがアンチエイリアシングをサポートするわけではなく、環境が使用前にそれをサポートしていることを確認することをお勧めします。
ラインの厚さは合理的でなければなりません。大きすぎると、線の端が滑らかになる可能性があるためです。