
Imagick::clipPathImage 함수는 클립 패스를 적용할 때 fill-rule 속성을 자동으로 적용하지 않습니다. 따라서 fill-rule 속성을 지정하려면 Imagick::annotateImage 함수를 사용하여 클립 패스에 fill-rule 속성을 추가해야 합니다.
예를 들어, 아래와 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
php
$image = new Imagick('원본이미지.jpg');
$clipPath = new Imagick('클립패스.svg');
$clipPath->setImageFormat('png');
$clipPath->setImageAlphaChannel(Imagick::ALPHACHANNEL_SET);
$clipPath->setImageAlphaChannel(Imagick::ALPHACHANNEL_SET);
$clipPath->annotateImage($image, 0, 0, 0, 'fill-rule:nonzero');
$image->compositeImage($clipPath, Imagick::COMPOSITE_OVER, 0, 0);
$image->writeImage('결과이미지.jpg');
이 코드에서는 fill-rule 속성을 'nonzero'로 지정하였습니다. fill-rule 속성은 클립 패스 내부에 있는 영역을 채우기 위해 사용됩니다. nonzero는 클립 패스 내부에 있는 영역을 채우는 것을 의미합니다. nonzero 외에도 evenodd, nonzero, inherit 등 다양한 fill-rule 속성이 있습니다.
2025-07-31 18:30