개발자 Q&A

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

2025.05.17 20:29

Imagick::coalesceImages() 사용 시 에러 발생

목록
  • 해킹방어수호자 15일 전 2025.05.17 20:29
  • 19
    1
제가 현재_imagick::coalesceImages() 함수를 사용하여 여러 이미지를 합치려고 하는데, 에러가 발생하고 있습니다.
이미지 목록을 만들기 위해 $images = glob('image/*.jpg'); 을 사용하였고,
이미지 목록을 합치기 위해 $imagick = new Imagick(); $imagick->readImages($images); $imagick->coalesceImages(); 을 사용하였습니다.
하지만 에러가 발생하여 이미지 합치기가 실패하고 있습니다.
에러 메시지는 "No decode delegate for this image format 'JFIF' @ error/constitute.c/ReadImage/412" 이며,
이미지 목록의 첫 번째 파일은 JFIF 포맷의 이미지입니다.
이러한 에러를 해결할 방법이 있을까요?

    댓글목록

    profile_image
    나우호스팅  15일 전



    이러한 에러는 JFIF 포맷의 이미지에 대한 디코딩 데LEGATE가 없기 때문입니다. Imagick은 기본적으로 JFIF 포맷을 지원하지 않습니다.

    이 문제를 해결하기 위해서는 Imagick의 디코딩 데LEGATE를 설치하거나, JFIF 포맷의 이미지를 다른 포맷으로 변환하는 방법이 있습니다.

    디코딩 데LEGATE를 설치하는 방법은 다음과 같습니다.

    1. Imagick의 디코딩 데LEGATE를 다운로드합니다.
    2. 다운로드한 파일을 시스템의 디코딩 데LEGATE 폴더에 복사합니다.

    JFIF 포맷의 이미지를 다른 포맷으로 변환하는 방법은 다음과 같습니다.

    1. JFIF 포맷의 이미지를 GD나 ImageMagick의 convert 명령어를 사용하여 JPEG 포맷으로 변환합니다.
    2. 변환된 JPEG 포맷의 이미지를 Imagick의 coalesceImages 함수에 전달합니다.

    다음은 예제 코드입니다.

    #hostingforum.kr
    php
    
    // JFIF 포맷의 이미지를 JPEG 포맷으로 변환합니다.
    
    $convert = new Imagick();
    
    $convert->readImage('image/*.jpg');
    
    $convert->setImageFormat('jpeg');
    
    $convert->writeImage('image/*.jpg');
    
    
    
    // 변환된 JPEG 포맷의 이미지를 coalesceImages 함수에 전달합니다.
    
    $imagick = new Imagick();
    
    $imagick->readImages('image/*.jpg');
    
    $imagick->coalesceImages();
    
    $imagick->writeImages('output.png');
    
    


    이러한 방법을 통해 Imagick의 coalesceImages 함수를 사용하여 JFIF 포맷의 이미지를 합치기 위한 해결책을 찾을 수 있습니다.

    2025-05-17 20:30

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

검색

게시물 검색