프로젝트 소개
TwelveMonkeys ImageIO는 Java 플랫폼의 javax.imageio 패키지를 위한 플러그인 및 확장 모음입니다. JDK가 다루지 않는 이미지 파일 형식에 대한 지원을 추가하여 애플리케이션이 "실제 환경에서" 발견되는 데이터를 읽고 레거시 형식에 대한 접근을 유지할 수 있도록 하는 것이 목표입니다.
지원 형식(README 표에 읽기/쓰기 여부 표시):
- BMP 플러그인: BMP(읽기/쓰기), CUR(읽기), ICO(읽기/쓰기)
- JPEG 플러그인: JPEG(읽기/쓰기), JPEG Lossless(읽기)
- TIFF 플러그인: TIFF(읽기/쓰기), BigTIFF(읽기/쓰기)
- PSD 플러그인: PSD(읽기, 제한적 쓰기), PSB(읽기)
- PNM 플러그인: PAM, PBM, PGM, PPM, PFM
- PCX 플러그인: PCX, DCX
- PICT 플러그인: PICT, PNTG
- 기타: DDS, HDR, ICNS, IFF, SGI, TGA, WebP(읽기), XWD, Thumbs.db
- Batik 기반: SVG 및 WMF(읽기), Apache Batik 필요
GIF, PNG, WBMP는 이미 JDK 표준 플러그인에서 처리되며, BMP, JPEG, TIFF의 경우 이 프로젝트가 확장 지원과 추가 기능을 제공합니다.
사용법: JAR를 추가하면 런타임에 플러그인이 자동으로 검색되므로 기본 읽기는 ImageIO.read(file), 쓰기는 ImageIO.write(image, format, file)입니다. README의 고급 예제에서는 ImageReader/ImageWriter 인스턴스 얻기, ImageReadParam/ImageWriteParam 설정, 썸네일과 메타데이터 읽기, 전체 이미지를 로드하지 않고 크기 조회하기를 보여줍니다. 추가 유틸리티로는 com.twelvemonkeys.imageio.path.Paths를 통한 Adobe 클리핑 패스 지원, 여러 필터를 사용하는 ResampleOp 이미지 크기 조정 작업, IndexColorModel로의 Floyd-Steinberg 디더링을 위한 DiffusionDither가 있습니다. README는 또한 대상 BufferedImage를 제공하여 손상된 이미지에서 부분적으로 사용 가능한 데이터를 읽는 방법을 설명합니다.
설치: groupId com.twelvemonkeys.imageio 아래의 Maven 좌표(예: imageio-jpeg, imageio-tiff) 또는 수동 클래스패스 JAR. 웹 애플리케이션의 경우 플러그인 로딩/언로딩을 처리하기 위해 IIOProviderContextListener를 권장하며, Jakarta classifier 변형도 제공됩니다. "fat" JAR를 빌드할 때는 META-INF/services 아래의 SPI 파일을 병합해야 합니다(예: Maven Shade ServicesResourceTransformer 사용).
빌드는 Maven(mvn package)을 사용하며, README는 Oracle JDK 8.x를 권장 빌드 JDK로 명시하고 OpenJDK에서 테스트 차이가 있을 수 있음을 언급합니다. 이 프로젝트는 Maven Central에 게시되어 있으며 CI, CodeQL, OpenSSF Scorecard 및 Best Practices 배지로 연결됩니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.