이미지 처리에 PHP의 GD 라이브러리를 사용하는 경우 imageAntialias () 함수는 종종 끄는 선을 더 매끄럽게 만들기 위해 방지 방지 켜기를 켜거나 끄는 데 사용됩니다. 많은 개발자들이 이미지를 그릴 때 마다이 기능을 다시 호출 해야하는지 궁금해 할 것입니까? 아니면 성능을 향상시키기 위해 중복 통화를 피하기위한 모범 사례가 있습니까?
imageAntialias () 함수는 GD 이미지 리소스에 작용하고 반 알리 아싱을 가능하게합니다. 전화 할 때 :
imageantialias($image, true);
이미지 리소스의 반 알리 아스 플래그를 ON으로 설정 한 다음 리소스를 기반으로 한 모든 그리기 작업은 안티 아리아스 기술을 사용하려고합니다.
대답은 아니오입니다. imageAntialias ()는 이미지 리소스의 속성 설정입니다. 리소스에 대한 antialias가 활성화되면, 리소스가 파괴되거나 명시 적으로 끄기 전까지이 이미지 리소스의 후속 도면에 설정이 적용됩니다 ( imageAntialias ($ image, false) ).
이것은 다음을 의미합니다.
동일한 이미지 리소스에서는 ImageAntialias ()를 한 번만 호출하면됩니다.
각 그림 전에 호출 할 필요가 없습니다.
예를 들어:
<?php
$image = imagecreatetruecolor(200, 200);
imageantialias($image, true); // 반 알리 아스를 켭니다
// 라인을 여러 번 그리십시오
imageline($image, 10, 10, 190, 10, imagecolorallocate($image, 255, 0, 0));
imageline($image, 10, 20, 190, 20, imagecolorallocate($image, 0, 255, 0));
// 전화를 반복 할 필요가 없습니다 imageantialias()
header("Content-Type: image/png");
imagepng($image);
imagedestroy($image);
?>
성능 관점에서 볼 때, ImageAntialias () 자체에 대한 호출의 오버 헤드는 매우 작지만 반복적 인 통화는 불필요합니다. 특히 복잡한 드로잉 루프 또는 배치 생성 이미지에서 약한 성능 폐기물을 가져올 수 없습니다.
모범 사례 :
이미지 자원을 초기화 한 후 imageAntialias ($ image, true);
후속 드로잉 작업은 동일한 설정을 기반으로하며 반복 통화가 필요하지 않습니다.
여러 개의 독립적 인 이미지가있는 경우 각각의 반 알리 아스 상태를 별도로 초기화 할 수 있습니다.
루프 내부 또는 각 줄을 그리기 전에 기능 통화 수를 줄이지 마십시오.
요약하면, imageAntialias ()는 이미지 리소스의 상태를 설정하는 함수입니다. 활성화 후, 방지 방지가 전체 이미지에 적용됩니다. 반복적 인 통화를 피하면 성능과 코드 선명도를 약간 향상시킬 수 있습니다.