
Imagick::labelImage 함수는 이미지에 텍스트를 추가하는 데 사용됩니다. 이 함수를 사용하려면 다음과 같이 설정해야 합니다.
- 이미지 크기: $image->newImage(800, 600, 'white'); // 이미지 크기 800x600, 배경색 흰색
- 텍스트 크기: $draw->setFont('arial.ttf'); // 글꼴 Arial, 크기 24
- 텍스트 위치: $draw->setFontSize(24); // 텍스트 크기 24
- 텍스트 색상: $draw->setFillColor('black'); // 텍스트 색상 검은색
- 글꼴: $draw->setFont('arial.ttf'); // 글꼴 Arial
위 코드에서 labelImage 함수를 사용하여 이미지에 텍스트를 추가한 후, 다른 텍스트를 추가할 때 이전 텍스트가 사라지는 현상은 labelImage 함수가 이전 텍스트를 지우는 문제로 인한 것입니다. 이 문제를 해결하려면 annotateImage 함수를 사용하여 텍스트를 추가하세요.
위 코드에서 writeImage 함수를 사용하여 이미지를 저장할 때 발생하는 오류는 이미지 저장에 실패한 것입니다. 이 오류를 해결하려면 이미지 저장 경로를 확인하고, 이미지 저장 권한을 확인하세요.
다음은 수정된 코드입니다.
#hostingforum.kr
php
$image = new Imagick('image.jpg');
$image->newImage(800, 600, 'white');
$draw = new ImagickDraw();
$draw->setFont('arial.ttf'); // 글꼴 Arial
$draw->setFontSize(24); // 텍스트 크기 24
$draw->setFillColor('black'); // 텍스트 색상 검은색
$image->annotateImage($draw, 10, 10, 0, 'Hello World');
$image->labelImage('Hello World', $draw);
$image->annotateImage($draw, 50, 50, 0, 'Hello World 2');
$image->writeImage('output.jpg');
이 코드에서는 annotateImage 함수를 사용하여 텍스트를 추가하고, labelImage 함수를 사용하여 텍스트를 추가한 후에 다른 텍스트를 추가합니다.
2025-07-31 00:13