이미지 처리에 GD 라이브러리를 사용하는 경우 imageAntialias () 함수는 매우 유용한 도구입니다. 반 알리 아스를 활성화하여 그린 이미지의 가장자리를 부드럽게 할 수 있습니다. 그러나이 기능의 효과가 항상 명백하지는 않기 때문에 이미지 비교를 통해 실제로 효과가 있는지 판단해야합니다. 이 기사는 코드 예제 및 이미지 출력 결과를 비교하여 imageAntialias () 의 실제 효과를 검증하는 방법을 설명합니다.
ImageAntialias (Resource $ image, bool $ enabled) : BOOL은 PHP GD 라이브러리의 기능으로, 이미지에서 항 알리 아스가 활성화되어 있는지 여부를 제어합니다. 이 기능은 주로 선, 원 및 타원과 같은 벡터 그래픽을 그리는 데 역할을합니다. TRUE 로 설정하면 더 복잡한 알고리즘이 가장자리를 부드럽게하고 이미지를 더 자연스럽게 만듭니다. 이미지 가장자리는 닫을 때 들쭉날쭉 한 이빨을 가질 수 있습니다.
함수가 활성화되어 있는지 여부를 결정하기 위해 동일한 이미지를 두 번 그릴 수 있습니다. 한 번은 항아리아를 활성화하고 한 번은 항아리아를 비활성화 할 수 있습니다. 그런 다음 두 이미지를 비교하여 가장자리에 큰 차이가 있는지 확인하십시오.
다음은 활성화 및 지원 안 항리아식으로 이미지 결과를 출력하는 간단한 PHP 스크립트 예제입니다.
<?php
function draw_circle($antialias, $filename) {
$width = 200;
$height = 200;
$image = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
imagefill($image, 0, 0, $white);
// 반 알리어스를 켜거나 끄십시오
imageantialias($image, $antialias);
// 원을 그립니다
imageellipse($image, $width / 2, $height / 2, 150, 150, $black);
// 이미지를 저장하십시오
imagepng($image, $filename);
imagedestroy($image);
}
// 항아리아 싱이 활성화되고 개별적으로 사용되지 않은 이미지를 그립니다
draw_circle(false, 'no_antialias.png');
draw_circle(true, 'with_antialias.png');
?>
위의 스크립트를 실행하면 두 개의 PNG 파일이 생성됩니다.
no_antialias.png : antialias는 활성화되지 않았습니다
with_antialias.png : antialias가 활성화되어 있습니다
브라우저 에서이 두 이미지를 비교하면 다음을 찾을 수 있습니다.
항아리아가있는 이미지 가장자리는 크게 들렸다.
aliasing anibled 이미지 가장자리가 더 부드럽고 선이 더 부드럽습니다.
예를 들어, 브라우저의 다음 주소에 액세스하여 출력 효과를 볼 수 있습니다 (PHP 스크립트가 웹 사이트의 루트 디렉토리에 배치되었다고 가정).
https://www.m66.net/no_antialias.png
https://www.m66.net/with_antialias.png
이런 식으로, imageAntialias ()가 적용되는지 명확하게 결정할 수 있습니다. 이 기능은 이미지 스케일링과 같은 다른 GD 작업에는 적용되지 않으며 그래픽 도면 (예 : 라인, 원 등)에만 유효합니다.
GD 라이브러리 버전 문제 : 다른 PHP 버전과 GD 라이브러리마다 알리 아스 방지에 대한 지원 수준이 다릅니다. 더 나은 결과를 위해 최신 PHP 버전을 사용하는 것이 좋습니다.
이미지 유형 제한 : aliasing aliasing 효과는 주로 벡터 드로잉 작업에 반영됩니다. 이미지가 크기를 조정하거나 복사하는 경우 imageAntialias ()는 영향을 미치지 않습니다. 스무딩 효과를 얻기 위해 imageecopyresampled ()를 사용하는 것이 좋습니다.
투명한 이미지 지원 : 드로잉 중에 투명한 배경이 관여하는 경우 ImageAlphableending () 및 ImagesAvealpha () 관련 설정의 추가 처리가 필요합니다.
이미지 출력 효과를 비교함으로써 imageantialias () 함수가 항 알리아에 대해 실제로 활성화되어 있는지 직관적으로 판단 할 수 있습니다. 적절한 그래픽 도면 장면을 구성하고 비교를 위해 기능을 활성화/비활성화하면 쉽게 확인할 수 있습니다. 이 방법은 간단하고 직관적이며 GD 그리기 품질 문제를 해결하는 효과적인 수단입니다.