Sobre el proyecto

TwelveMonkeys ImageIO es un conjunto de complementos y extensiones para el paquete javax.imageio de la plataforma Java. Su objetivo declarado es añadir soporte para formatos de archivo de imagen no cubiertos por el JDK, de modo que las aplicaciones puedan leer datos que se encuentran "en estado salvaje" y conservar el acceso a formatos heredados. Formatos compatibles (lectura/escritura indicada en la tabla del README): - Complemento BMP: BMP (lectura/escritura), CUR (lectura), ICO (lectura/escritura) - Complemento JPEG: JPEG (lectura/escritura), JPEG sin pérdida (lectura) - Complemento TIFF: TIFF (lectura/escritura), BigTIFF (lectura/escritura) - Complemento PSD: PSD (lectura, escritura limitada), PSB (lectura) - Complemento PNM: PAM, PBM, PGM, PPM, PFM - Complemento PCX: PCX, DCX - Complemento PICT: PICT, PNTG - Otros: DDS, HDR, ICNS, IFF, SGI, TGA, WebP (lectura), XWD, Thumbs.db - Basados en Batik: SVG y WMF (lectura), requieren Apache Batik GIF, PNG y WBMP ya son gestionados por los complementos estándar del JDK; para BMP, JPEG y TIFF el proyecto ofrece soporte ampliado y funciones adicionales. Uso: tras añadir los JAR, los complementos se descubren automáticamente en tiempo de ejecución, por lo que la lectura básica es ImageIO.read(file) y la escritura es ImageIO.write(image, format, file). Los ejemplos avanzados del README muestran cómo obtener instancias de ImageReader/ImageWriter, configurar ImageReadParam/ImageWriteParam, leer miniaturas y metadatos, y consultar dimensiones sin cargar la imagen completa. Las utilidades adicionales incluyen soporte de trazados de recorte de Adobe mediante com.twelvemonkeys.imageio.path.Paths, una operación de redimensionado de imagen ResampleOp con múltiples filtros, y DiffusionDither para el tramado Floyd-Steinberg a IndexColorModel. El README también describe la lectura de datos parcialmente utilizables de imágenes dañadas proporcionando un BufferedImage de destino. Instalación: coordenadas Maven bajo el groupId com.twelvemonkeys.imageio (por ejemplo imageio-jpeg, imageio-tiff), o JAR en el classpath de forma manual. Para aplicaciones web, se recomienda IIOProviderContextListener para gestionar la carga/descarga de complementos, con una variante de clasificador Jakarta disponible. Al construir JAR "fat", los archivos SPI bajo META-INF/services deben fusionarse (por ejemplo con el ServicesResourceTransformer de Maven Shade). La compilación usa Maven (mvn package); el README señala Oracle JDK 8.x como el JDK de compilación recomendado y menciona posibles diferencias en las pruebas bajo OpenJDK. El proyecto está publicado en Maven Central y enlaza a insignias de CI, CodeQL, OpenSSF Scorecard y Best Practices.