Sobre o projeto
O TwelveMonkeys ImageIO é um conjunto de plug-ins e extensões para o pacote javax.imageio da plataforma Java. Seu objetivo declarado é adicionar suporte a formatos de arquivo de imagem não cobertos pelo JDK, para que os aplicativos possam ler dados encontrados "in the wild" e manter acesso a formatos legados.
Formatos suportados (leitura/gravação indicadas na tabela do README):
- Plug-in BMP: BMP (leitura/gravação), CUR (leitura), ICO (leitura/gravação)
- Plug-in JPEG: JPEG (leitura/gravação), JPEG Lossless (leitura)
- Plug-in TIFF: TIFF (leitura/gravação), BigTIFF (leitura/gravação)
- Plug-in PSD: PSD (leitura, gravação limitada), PSB (leitura)
- Plug-in PNM: PAM, PBM, PGM, PPM, PFM
- Plug-in PCX: PCX, DCX
- Plug-in PICT: PICT, PNTG
- Outros: DDS, HDR, ICNS, IFF, SGI, TGA, WebP (leitura), XWD, Thumbs.db
- Baseados em Batik: SVG e WMF (leitura), exigindo Apache Batik
GIF, PNG e WBMP já são tratados pelos plug-ins padrão do JDK; para BMP, JPEG e TIFF o projeto oferece suporte estendido e recursos extras.
Uso: após adicionar os JARs, os plug-ins são descobertos automaticamente em tempo de execução, então a leitura básica é ImageIO.read(file) e a gravação é ImageIO.write(image, format, file). Exemplos avançados no README mostram como obter instâncias de ImageReader/ImageWriter, definir ImageReadParam/ImageWriteParam, ler miniaturas e metadados, e consultar dimensões sem carregar a imagem completa. Utilitários adicionais incluem suporte a caminhos de recorte da Adobe via com.twelvemonkeys.imageio.path.Paths, uma operação de redimensionamento de imagem ResampleOp com vários filtros, e DiffusionDither para dithering Floyd-Steinberg para IndexColorModel. O README também descreve a leitura de dados parcialmente utilizáveis de imagens danificadas fornecendo um BufferedImage de destino.
Instalação: coordenadas Maven sob o groupId com.twelvemonkeys.imageio (por exemplo, imageio-jpeg, imageio-tiff), ou JARs manuais no classpath. Para aplicações web, o IIOProviderContextListener é recomendado para lidar com o carregamento/descarregamento de plug-ins, com uma variante de classificador Jakarta disponível. Ao construir JARs "fat", os arquivos SPI em META-INF/services devem ser mesclados (por exemplo, com o Maven Shade ServicesResourceTransformer).
A construção usa Maven (mvn package); o README observa o Oracle JDK 8.x como o JDK de construção recomendado e menciona possíveis diferenças de teste sob OpenJDK. O projeto é publicado no Maven Central e vincula aos badges de CI, CodeQL, OpenSSF Scorecard e Best Practices.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.