현재 위치: > 최신 기사 목록> imageAntialias ()의 "강도"를 설정하는 방법이 있습니까?

imageAntialias ()의 "강도"를 설정하는 방법이 있습니까?

M66 2025-06-05

ImageAnialias ()가 강도 매개 변수가없는 이유는 무엇입니까?

GD 라이브러리의 aliasing 기능 설계는 비교적 간단하며 ON 및 OFF 만 지원합니다. 기본 구현은 GD 라이브러리 자체에 의해 제어되며 세분화 된 조정 인터페이스는 노출되지 않습니다. 따라서 imageAntialias () 를 통해 반 알리 아스의 정도를 직접 조정할 수는 없습니다.


더 미세한 반 알리 아스를 달성 할 수있는 대안은 무엇입니까?

  1. 높은 해상도로 그리고 축소하십시오

    이것은 일반적으로 사용되는 "슈퍼 샘플링 방지 방지"아이디어입니다. 먼저 이미지를 더 큰 크기로 그릴 수 있고, aliasing을 켜고, imageecopyresampled () 를 통해 대상 크기로 줄어들 수 있습니다.

     <?php
    $width = 200;
    $height = 200;
    
    // 이중 크기 캔버스를 만듭니다
    $largeWidth = $width * 2;
    $largeHeight = $height * 2;
    
    $largeImage = imagecreatetruecolor($largeWidth, $largeHeight);
    imageantialias($largeImage, true);
    
    $white = imagecolorallocate($largeImage, 255, 255, 255);
    $black = imagecolorallocate($largeImage, 0, 0, 0);
    
    imagefilledrectangle($largeImage, 0, 0, $largeWidth, $largeHeight, $white);
    
    // 선이나 그림을 그립니다,좌표가 두 번 확대됩니다
    imageline($largeImage, 10 * 2, 10 * 2, 190 * 2, 190 * 2, $black);
    
    // 대상 캔버스를 만듭니다
    $finalImage = imagecreatetruecolor($width, $height);
    imagecopyresampled($finalImage, $largeImage, 0, 0, 0, 0, $width, $height, $largeWidth, $largeHeight);
    
    header('Content-Type: image/png');
    imagepng($finalImage);
    
    imagedestroy($largeImage);
    imagedestroy($finalImage);
    ?>
    
  2. imagick을 사용하여 GD를 교체하십시오

    aliasing에 대한 요구 사항이 더 높으면 Imagemagick의 PHP Extension Imagick을 사용하는 것이 좋습니다. 더 나은 결과와 더 풍부한 매개 변수를 갖는 필터 설정 및 샘플링 방법과 같은 더 많은 방지 컨트롤을 지원합니다.

    예:

     <?php
    $imagick = new Imagick();
    $imagick->newImage(200, 200, new ImagickPixel('white'));
    
    $draw = new ImagickDraw();
    $draw->setStrokeColor('black');
    $draw->setStrokeWidth(2);
    $draw->setFillColor('none');
    $draw->setStrokeAntialias(true);
    
    $draw->line(10, 10, 190, 190);
    
    $imagick->drawImage($draw);
    header("Content-Type: image/png");
    echo $imagick;
    ?>
    
  3. 안티 앨리어싱 알고리즘을 수동으로 구현합니다

    이는 강력한 이미지 처리 지식이 필요하며 반 알리 아스 효과에 대한 특별한 요구 사항이 없다면 일반적으로 권장되지 않습니다.


URL 사용 도메인 이름 교체품에 대해

 $image = imagecreatefrompng('https://m66.net/path/to/image.png');