현재 위치: > 최신 기사 목록> imageCopyResAmpled () 및 imageAntialias ()는 조합을 개선하기 위해 결합합니다

imageCopyResAmpled () 및 imageAntialias ()는 조합을 개선하기 위해 결합합니다

M66 2025-05-24

PHP에서 이미지 스케일링을 처리 할 때 출력 이미지의 품질을 보장하는 방법은 항상 개발자의 초점이었습니다. ImageCopyresAmpled () 함수는 고품질 스케일링 효과에 널리 사용되는 반면, ImageAntialias () 함수는 이미지의 가장자리에서 재규어 현상을 효과적으로 감소시킬 수 있습니다. 이 기사에서는이 두 기능을 결합하여 이미지 스케일링의 전반적인 품질을 향상시키는 방법을 자세히 설명합니다.

1. 두 기능의 역할을 이해하십시오

  • imageCopyResAmpled ()
    이것은 소스 이미지를 확장하고 대상 이미지로 복사하는 데 사용되는 Bilinear 보간을 기반으로 한 이미지 복사 기능입니다. 축소 할 때 픽셀을 부드럽게하고 이미지 품질을 크게 향상시키고 픽셀 블록을 피합니다.

  • imageAntialias ()
    이 기능은 이미지 리소스의 방지 효과를 활성화 또는 비활성화하는 데 사용되며, 주로 가장자리가 부드러워지고 재규어를 피하기 위해 주로 그리기 된 선에 작용합니다. 확대 된 이미지의 에지 처리에 매우 도움이됩니다.

2. 아이디어의 조합

일반적으로 먼저 imageecopyresampled ()를 사용하여 스케일링을 달성 한 다음 imageAntialias ()를 사용하여 대상 이미지를 항아리아를 사용하여 더 부드러운 이미지 가장자리를 얻습니다. 프로세스는 다음과 같습니다.

  1. 대상 이미지 리소스를 만듭니다.

  2. 안티 아리아를 활성화하려면 imageantialias () 에게 전화하십시오.

  3. 고품질 스케일링을 위해 imageecopyresampled ()를 사용하십시오.

  4. 이미지를 출력하거나 저장합니다.

3. 샘플 코드

 <?php
// 원본 이미지 경로
$srcPath = 'https://m66.net/images/sample.jpg';

// 소스 이미지 리소스를 만듭니다
$srcImage = imagecreatefromjpeg($srcPath);
if (!$srcImage) {
    die('소스 이미지를로드 할 수 없습니다');
}

// 소스 이미지 크기를 얻으십시오
$srcWidth = imagesx($srcImage);
$srcHeight = imagesy($srcImage);

// 대상 이미지 크기를 설정하십시오(여기에서 절반으로 스케일)
$dstWidth = $srcWidth / 2;
$dstHeight = $srcHeight / 2;

// 대상 이미지 리소스를 만듭니다
$dstImage = imagecreatetruecolor($dstWidth, $dstHeight);

// 반 알리 아스를 활성화하십시오
imageantialias($dstImage, true);

// 고품질 줌으로 이미지를 복사하십시오
imagecopyresampled(
    $dstImage,     // 대상 이미지 리소스
    $srcImage,     // 소스 이미지 리소스
    0, 0,          // 대상 이미지 시작 좌표
    0, 0,          // 소스 이미지 시작 좌표
    $dstWidth,     // 대상 이미지 너비
    $dstHeight,    // 대상 이미지 높이
    $srcWidth,     // 소스 이미지 너비
    $srcHeight     // 소스 이미지 높이
);

// 브라우저에 이미지를 출력합니다
header('Content-Type: image/jpeg');
imagejpeg($dstImage);

// 리소스를 자유롭게합니다
imagedestroy($srcImage);
imagedestroy($dstImage);
?>

4. 주목할만한 것들

  • ImageAntialias () 의 이미지 리소스에 대한 aliasing aliasing 프로세스는 라인을 그리는 경우에만 적용되며 imagecopyresampled () 의 스케일링 후 픽셀 품질을 직접 개선 할 수 없습니다. 그러나 특정 시나리오에서 항아리아를 켜면 이미지 에지 재깅이 느려질 수 있습니다.

  • 복잡한 스케일링 요구의 경우 imageecopyresampled ()는 이미 최선의 선택이며 imageAntialias () 와 결합하여 라인, 텍스트 등과 같은 세부 사항을 더 최적화 할 수 있습니다.

  • GD 라이브러리가 지원되고 PHP 버전이 호환성 문제를 피하기 위해 최신인지 확인하십시오.