Java

[spring]이미지 추출시 문제가 발생하는 경우 해결하는 방법 (jpeg2000 확장자가 문제가 될 수 있어요)

[이슈]

pdf 파일을 업로드하여 이미지로 만들 때 문제가 발생하는 경우

 

[원인]

pdf파일 생성시 첨부된 이미지들 중에 이미지 확장자가 JPG2000 인경우 이미지를 추출하지 못함

 

[해결방법]

1. pom.xml 파일에 jpeg2000라이브러리 추가

<dependency>
     <groupId>com.github.jai-imageio</groupId>
     <artifactId>jai-imageio-jpeg2000</artifactId>
     <version>1.3.0</version>
</dependency>

위 방법으로 해결안되는 경우, PDF라이브러리를 업데이트 혹은 다운그레이드

 

JPEG2000 개요 (jpc, j2k, jpx, jpf, jp2, j2c)

JPEG 2000은 웨이블릿 기술을 기반으로 하는 최신 압축 기술을 사용하는 이미지 코딩 시스템으로 매우 높은 수준의 확장성과 접근성을 제공합니다. 콘텐츠는 무손실까지 어떤 품질로든 한 번 코딩될 수 있지만 코딩 효율성에 큰 불이익 없이 잠재적으로 매우 많은 다른 품질 및 해상도 및/또는 관심 영역에서 액세스 및 디코딩됩니다. 이 표준은 최대 16384개의 구성 요소를 지원하며, 치수는 수천 테라픽셀, 정밀도는 최대 38비트/샘플, 타일링 여부에 관계없이, 다양한 상호 교환 가능한 데이터 진행 및 랜덤 액세스 기능을 갖추고 있습니다. JPEG 2000 아키텍처는 휴대용 디지털 카메라에서 고급 인쇄기, 의료 영상, 지리 공간 및 기타 주요 응용 분야에 이르기까지 광범위한 용도에 적합합니다.

 

ISO와 ITU의 공동 조직인 Joint Photographic Experts Group에서 JPEG의 후속으로 규격화 되었습니다. JPEG보다 높은 압축률과 개선된 이미지 품질을 얻기 위해 개발되었으며, 비손실 압축을 지원합니다. 그리고 하나의 이미지에 여러 해상도의 이미지를 포함할 수 있어요. JPEG 2000의 일부가 ISO 표준(ISO/IEC 15444-1)으로 발표되었지만 2020년 기준 현재도 대부분의 웹 브라우저에서 지원되지 않습니다. JPEG는 무손실 압출이 불가능하고, 원본 이미지의 손상을 가져와요.

 

이미지 압축 방법은 크게 두 가지로 무손실 압축과 손실 압축 분류할 수 있습니다. 손실 압축의 대표적인 방법에는 JPEG와 JPEG2000이 있다. 무손실 압축 방식에는 BMP, PNG, GIF 등이 있다. 손실 압축은 이미지의 내용에 손실을 주면서 압축하는 방식이고, 무손실 압축은 어떠한 손실 없이 압축하는 방식이다. 당연히 손실 압축 방식이 무손실 압축 방식에 비해 용량을 많이 줄일 수 있다

 

 

[REFERENCE]

[연관 자료]

 

Leave a Reply

error: Content is protected !!