PHPで画像を処理する場合、GDライブラリは一般にさまざまな画像操作を実行するために使用されます。 ImageAntialias()関数は、GDライブラリが提供するツールであり、アンチエイリアシング効果を有効にします。アンチエイリアスは、画像のラインを滑らかにし、画像のエッジを形作ることができ、視覚効果をジャグしたことを避けて、画像の品質が向上します。それでは、 ImageAntialias()が有効になった後に画像のサイズが変更されますか?
ImageAntialias()関数は次のように定義されています。
bool imageantialias ( resource $image , bool $enabled )
$画像は画像リソースハンドルです
$ enabledが真である場合、アンチアリアシングは有効になり、 falseの場合は閉じます
この関数は、描画線のエッジをより柔らかくすることができる機能( ImageLine() 、 ImagePolygon()などなどの描画機能(ImageLine()、ImagePolygon()など)にのみ有効です。
簡単な答え:いいえ。
ImageAntialias()の有効化は、画像が描画されたときにピクセルシェーディング方法にのみ影響し、エッジの滑らかさを向上させますが、画像サイズは変更されません。画像の幅と高さは、 Imagesx()とImagesy()を呼び出すことによって得られるピクセル値です。
<?php
// aを作成します100x100本当の色の画像
$image = imagecreatetruecolor(100, 100);
// アンチアリアシングをオンにします
imageantialias($image, true);
// 対角線を描きます
$color = imagecolorallocate($image, 255, 0, 0);
imageline($image, 10, 10, 90, 90, $color);
echo "画像幅:" . imagesx($image) . "\n";
echo "画像の高さ:" . imagesy($image) . "\n";
// 出力画像
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>
コードを実行すると、画像サイズはまだ100x100ピクセルですが、描かれた赤い線のエッジはより滑らかになります。
画像サイズは、次の場合にのみ変更されます。
Scalingには、ImageCopyResampled() 、 ImageCopyResampled() 、およびその他の関数を使用します
キャンバスを再現し、幅と高さを調整します
外部画像をロードするとき、画像は元々さまざまなサイズのものです
アンチエイリアスは、画像サイズを変更するための操作のカテゴリに属していません。
ImageAntialias()はピクセルのレンダリングにのみ影響し、エッジを滑らかにします
画像の幅と高さは変更されません
画像サイズを変更する場合は、スケーリングなどの関数を使用する必要があります。
アンチエイリアシングを合理的に利用することにより、グラフィックスの処理時に一般的な手法である元の画像サイズを変更せずに保ちながら、画像ラインがより美しくなる可能性があります。