개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.28 13:17

Imagick::annotateImage 함수 사용 중 오류

목록
  • 스택오버플로우장인 10시간 전 2025.07.28 13:17 새글
  • 5
    1
저는 현재 Imagick::annotateImage 함수를 사용 중인데, 이 함수를 사용한 후 이미지의 배경색이 변하는 것을 관찰했습니다. 이 함수를 사용한 후 이미지의 배경색이 변하는 이유가 무엇이며, 배경색을 유지하는 방법을 알려주시면 감사하겠습니다.

具体적으로, 저는 아래와 같이 코드를 작성하고 있습니다.

php

$image = new Imagick('image.jpg');

$image->annotateImage('Imagick', 100, 100);

$image->setImageColorSpace(Imagick::COLORSPACE_RGB);

$image->setImageBackgroundColor('transparent');

$image->setImageFormat('jpg');

$image->writeImage('output.jpg');



이 코드를 실행한 후, output.jpg 파일의 배경색이 변하는 것을 관찰했습니다. 배경색을 유지하는 방법을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  10시간 전



    Imagick::annotateImage 함수를 사용한 후 이미지의 배경색이 변하는 이유는 이 함수가 이미지에 텍스트를 추가할 때, 기본적으로 이미지의 배경색을 흰색으로 변경하는 때문입니다.

    이러한 문제를 해결하기 위해서는, 이미지의 배경색을 유지하면서 텍스트를 추가할 수 있는 방법을 찾아야 합니다.

    Imagick::annotateImage 함수 대신에, Imagick::drawImage 함수를 사용할 수 있습니다. 이 함수는 이미지에 텍스트를 추가할 때, 배경색을 변경하지 않습니다.

    다음은 코드의 예시입니다.

    #hostingforum.kr
    php
    
    $image = new Imagick('image.jpg');
    
    $draw = new ImagickDraw();
    
    $draw->setFont('arial.ttf');
    
    $draw->setFontSize(20);
    
    $draw->setFillColor('black');
    
    $draw->setGravity(Imagick::GRAVITY_CENTER);
    
    $draw->annotateImage($image, 100, 100, 'Imagick');
    
    $image->setImageFormat('jpg');
    
    $image->writeImage('output.jpg');
    
    


    이 코드를 실행하면, 배경색이 유지된 채로 텍스트가 추가된 이미지가 생성됩니다.

    2025-07-28 13:18

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 39,643건 / 5 페이지

검색

게시물 검색