
Imagick::render 함수는 이미지를 렌더링하는 데 사용되지만, 특정 이미지 형식 (.svg)에서 오류가 발생할 수 있습니다.
이 오류는 Imagick::render 함수가 ImagickDraw 인스턴스 대신에 파일 경로를 받기 때문입니다.
오류 메시지에서 "expects parameter 1 to be ImagickDraw, instance given in..."이란 Imagick::render 함수가 첫 번째 매개 변수로 ImagickDraw 인스턴스를 받기를 기대했지만, 실제로는 파일 경로를 받았기 때문입니다.
이 오류를 해결하려면, Imagick::render 함수에 ImagickDraw 인스턴스를 전달해야 합니다.
예를 들어, 다음 코드를 수정하여 Imagick::render 함수에 ImagickDraw 인스턴스를 전달할 수 있습니다.
#hostingforum.kr
php
$draw = new ImagickDraw();
$draw->setResolution(300, 300);
$draw->setFillColor('black');
$draw->setStrokeColor('black');
$draw->setStrokeWidth(2);
$imagick = new Imagick();
$imagick->readImage($imagePath);
$imagick->drawImage($draw);
$imagick->setImageFormat('svg');
$imagick->writeImage($imagePath . '.svg');
이 코드에서는 Imagick::render 함수를 사용하지 않고, setImageFormat 함수를 사용하여 이미지 형식을 .svg로 설정한 후, writeImage 함수를 사용하여 이미지를 파일로 저장합니다.
이 방법은 Imagick 버전 7.0.10-3에서 작동합니다.
2025-03-08 05:48