Updated to latest release + added new table format.

This commit is contained in:
Harald Kuhr 2021-04-24 18:16:20 +02:00
parent d0ff4f28e4
commit f6dd5d7f83

View File

@ -45,7 +45,7 @@
<h2> <h2>
<a id="latest" class="anchor" href="#latest" aria-hidden="true"><span class="octicon octicon-link"></span></a>Latest</h2> <a id="latest" class="anchor" href="#latest" aria-hidden="true"><span class="octicon octicon-link"></span></a>Latest</h2>
<p>Latest release is TwelveMonkeys ImageIO <a href="https://search.maven.org/search?q=g:com.twelvemonkeys.imageio%20AND%20v:3.6">3.6</a> (July. 10th, 2020).</p> <p>Latest release is TwelveMonkeys ImageIO <a href="https://search.maven.org/search?q=g:com.twelvemonkeys.imageio%20AND%20v:3.7.0">3.7.0</a> (April 24th, 2021).</p>
<p><a href="https://github.com/haraldk/TwelveMonkeys/releases/latest">Release notes</a>. <p><a href="https://github.com/haraldk/TwelveMonkeys/releases/latest">Release notes</a>.
<h2> <h2>
@ -53,8 +53,8 @@
<p>TwelveMonkeys ImageIO is a collection of plugins and extensions for Java's ImageIO.</p> <p>TwelveMonkeys ImageIO is a collection of plugins and extensions for Java's ImageIO.</p>
<p>These plugins extends the number of image file formats supported in Java, using the javax.imageio.* package. <p>These plugins extend the number of image file formats supported in Java, using the <code>javax.imageio.*</code>
The main purpose of this project is to provide support for formats not covered by the JRE itself.</p> package. The main purpose of this project is to provide support for formats not covered by the JRE itself.</p>
<p>Support for formats is important, both to be able to read data found <p>Support for formats is important, both to be able to read data found
"in the wild", as well as to maintain access to data in legacy formats. "in the wild", as well as to maintain access to data in legacy formats.
@ -63,349 +63,416 @@ The goal is to create a set of efficient and robust ImageIO plug-ins, that can b
<hr> <hr>
<h2><a id="user-content-features" class="anchor" href="#features" aria-hidden="true"><span class="octicon octicon-link"></span></a>Features</h2> <h2><a id="user-content-features" class="anchor" href="#features" aria-hidden="true"><span class="octicon octicon-link"></span></a>File formats supported</h2>
<p>Mainstream format support</p> <table>
<thead>
<h4><a id="user-content-bmp---ms-windowsibm-os2-device-independent-bitmap" class="anchor" href="#bmp---ms-windowsibm-os2-device-independent-bitmap" aria-hidden="true"><span class="octicon octicon-link"></span></a>BMP - MS Windows/IBM OS/2 Device Independent Bitmap</h4> <tr>
<th>Plugin</th>
<ul> <th>Format</th>
<li>Read support for all known versions of the DIB/BMP format <th>Description</th>
<th align="center">Read</th>
<ul> <th align="center">Write</th>
<li>Indexed color, 1, 4 and 8 bit, including 4 and 8 bit RLE</li> <th>Metadata</th>
<li>RGB, 16, 24 and 32 bit</li> </tr>
<li>Embedded PNG and JPEG data</li> </thead>
<li>Windows and OS/2 versions</li> <tbody>
</ul></li> <tr>
<li>Native and standard metadata format</li> <td>Batik</td>
</ul> <td>
<strong>SVG</strong>
<h4><a id="user-content-jpeg" class="anchor" href="#jpeg" aria-hidden="true"><span class="octicon octicon-link"></span></a>JPEG</h4> </td>
<td>Scalable Vector Graphics</td>
<ul> <td align="center">
<li>Read support for the following JPEG "flavors": <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<ul> <td align="center">-</td>
<li>All JFIF compliant JPEGs</li> <td>-</td>
<li>All Exif compliant JPEGs</li> </tr>
<li>Limited support for JPEG-Lossless</li> <tr>
<li>YCbCr JPEGs without JFIF segment (converted to RGB, using embedded ICC profile)</li> <td></td>
<li>CMYK JPEGs (converted to RGB by default or as CMYK, using embedded ICC profile)</li> <td>WMF</td>
<li>Adobe YCCK JPEGs (converted to RGB by default or as CMYK, using embedded ICC profile)</li> <td>MS Windows Metafile</td>
<li>JPEGs containing ICC profiles with interpretation other than 'Perceptual' or class other than 'Display'</li> <td align="center">
<li>JPEGs containing ICC profiles that are incompatible with stream data, corrupted ICC profiles or corrupted <code>ICC_PROFILE</code> segments</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>JPEGs using non-standard color spaces, unsupported by Java 2D</li> </td>
<li>JPEGs with APP14/Adobe segments with length other than 14 bytes</li> <td align="center">-</td>
<li>8 bit JPEGs with 16 bit DQT segments</li> <td>-</td>
<li>Issues warnings instead of throwing exceptions in cases of corrupted or non-conformant data where ever the image </tr>
data can still be read in a reasonable way</li> <tr>
</ul></li> <td>
<li>Thumbnail support: <a href="https://github.com/haraldk/TwelveMonkeys/wiki/BMP-Plugin">BMP</a>
</td>
<ul> <td>
<li>JFIF thumbnails (even if stream contains "inconsistent metadata")</li> <strong>BMP</strong>
<li>JFXX thumbnails (JPEG, Indexed and RGB)</li> </td>
<li>EXIF thumbnails (JPEG, RGB and YCbCr)</li> <td>MS Windows and IBM OS/2 Device Independent Bitmap</td>
</ul></li> <td align="center">
<li>Metadata support: <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<ul> <td align="center">
<li>JPEG metadata in both standard and native formats (even if stream contains "inconsistent metadata")</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li><code>javax_imageio_jpeg_image_1.0</code> format (currently as native format, may change in the future)</li> </td>
<li>Non-conforming combinations of JFIF, Exif and Adobe markers, using "unknown" segments in the <td>
"MarkerSequence" tag for the unsupported segments (for <code>javax_imageio_jpeg_image_1.0</code> format)</li> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/bmp_metadata.html" rel="nofollow">Native</a>
</ul></li> &amp;
<li>Extended write support in progress: <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
<ul> </tr>
<li>CMYK JPEGs</li> <tr>
<li>YCCK JPEGs</li> <td></td>
</ul></li> <td>CUR</td>
</ul> <td>MS Windows Cursor Format</td>
<td align="center">
<h4><a id="user-content-jpeg-2000" class="anchor" href="#jpeg-2000" aria-hidden="true"><span class="octicon octicon-link"></span></a>JPEG-2000</h4> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<ul> <td align="center">-</td>
<li>Possibly coming in the future, pending some license issues.</li> <td>-</td>
</ul> </tr>
<tr>
<p>If you are one of the authors, or know one of the authors and/or the current license holders of either the original <td></td>
jj2000 package or the JAI ImageIO project, please contact me (I've tried to get in touch in various ways, <td>ICO</td>
without success so far).</p> <td>MS Windows Icon Format</td>
<td align="center">
<p>Alternatively, if you have or know of a JPEG-2000 implementation in Java with a suitable license, get in touch. :-)</p> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<h4><a id="user-content-pnm---netpbm-portable-any-map" class="anchor" href="#pnm---netpbm-portable-any-map" aria-hidden="true"><span class="octicon octicon-link"></span></a>PNM - NetPBM Portable Any Map</h4> <td align="center">
<g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<ul> </td>
<li>Read support for the following file types: <td>-</td>
</tr>
<ul> <tr>
<li>PBM in 'P1' (ASCII) and 'P4' (binary) formats, 1 bit per pixel</li> <td>
<li>PGM in 'P2' (ASCII) and 'P5' (binary) formats, up to 16/32 bits per pixel</li> <a href="https://github.com/haraldk/TwelveMonkeys/wiki/HDR-Plugin">HDR</a>
<li>PPM in 'P3' (ASCII) and 'P6' (binary) formats, up to 16/32 bits per pixel component</li> </td>
<li>PAM in 'P7' (binary) format up to 32 bits per pixel component</li> <td>HDR</td>
<li>Limited support for PFM in 'Pf' (gray) and 'PF' (RGB) formats, 32 bits floating point</li> <td>Radiance High Dynamic Range RGBE Format</td>
</ul></li> <td align="center">
<li>Write support for the following formats: <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<ul> <td align="center">-</td>
<li>PPM in 'P6' (binary) format</li> <td>
<li>PAM in 'P7' (binary) format</li> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</ul></li> </td>
<li>Standard metadata support</li> </tr>
</ul> <tr>
<td>
<h4><a id="user-content-psd---adobe-photoshop-document" class="anchor" href="#psd---adobe-photoshop-document" aria-hidden="true"><span class="octicon octicon-link"></span></a>PSD - Adobe Photoshop Document</h4> <a href="https://github.com/haraldk/TwelveMonkeys/wiki/ICNS-Plugin">ICNS</a>
</td>
<ul> <td>ICNS</td>
<li>Read support for the following file types: <td>Apple Icon Image</td>
<td align="center">
<ul> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>Monochrome, 1 channel, 1 bit</li> </td>
<li>Indexed, 1 channel, 8 bit</li> <td align="center">
<li>Gray, 1 channel, 8, 16 and 32 bit</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>Duotone, 1 channel, 8, 16 and 32 bit</li> </td>
<li>RGB, 3-4 channels, 8, 16 and 32 bit</li> <td>-</td>
<li>CMYK, 4-5 channels, 8, 16 and 32 bit</li> </tr>
</ul></li> <tr>
<li>Read support for the following compression types: <td>
<a href="https://github.com/haraldk/TwelveMonkeys/wiki/IFF-Plugin">IFF</a>
<ul> </td>
<li>Uncompressed</li> <td>IFF</td>
<li>RLE (PackBits)</li> <td>Commodore Amiga/Electronic Arts Interchange File Format</td>
</ul></li> <td align="center">
<li>Layer support <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<ul> <td align="center">
<li>Image layers only, in all of the above types</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</ul></li> </td>
<li>Thumbnail support <td>
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
<ul> </td>
<li>JPEG</li> </tr>
<li>RAW (RGB)</li> <tr>
</ul></li> <td>
<li>Support for "Large Document Format" (PSB)</li> <a href="https://github.com/haraldk/TwelveMonkeys/wiki/JPEG-Plugin">JPEG</a>
<li>Native and Standard metadata support</li> </td>
</ul> <td>
<strong>JPEG</strong>
<h4><a id="user-content-tiff---aldusadobe-tagged-image-file-format" class="anchor" href="#tiff---aldusadobe-tagged-image-file-format" aria-hidden="true"><span class="octicon octicon-link"></span></a>TIFF - Aldus/Adobe Tagged Image File Format</h4> </td>
<td>Joint Photographers Expert Group</td>
<ul> <td align="center">
<li>Read support for the following "Baseline" TIFF file types: <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<ul> <td align="center">
<li>Class B (Bi-level), all relevant compression types, 1 bit per sample</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>Class G (Gray), all relevant compression types, 2, 4, 8, 16 or 32 bits per sample, unsigned integer</li> </td>
<li>Class P (Palette/indexed color), all relevant compression types, 1, 2, 4, 8 or 16 bits per sample, unsigned integer</li> <td>
<li>Class R (RGB), all relevant compression types, 8 or 16 bits per sample, unsigned integer</li> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/jpeg_metadata.html#image" rel="nofollow">Native</a>
</ul></li> &amp;
<li>Read support for the following TIFF extensions: <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
<ul> </tr>
<li>Tiling</li> <tr>
<li>Class F (Facsimile), CCITT Modified Huffman RLE, T4 and T6 (type 2, 3 and 4) compressions.</li> <td></td>
<li>LZW Compression (type 5)</li> <td>JPEG Lossless</td>
<li>"Old-style" JPEG Compression (type 6), as a best effort, as the spec is not well-defined</li> <td></td>
<li>JPEG Compression (type 7)</li> <td align="center">
<li>ZLib (aka Adobe-style Deflate) Compression (type 8)</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>Deflate Compression (type 32946)</li> </td>
<li>Horizontal differencing Predictor (type 2) for LZW, ZLib, Deflate and PackBits compression</li> <td align="center">-</td>
<li>Alpha channel (ExtraSamples type 1/Associated Alpha and type 2/Unassociated Alpha)</li> <td>
<li>CMYK data (PhotometricInterpretation type 5/Separated)</li> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/jpeg_metadata.html#image" rel="nofollow">Native</a>
<li>YCbCr data (PhotometricInterpretation type 6/YCbCr) for JPEG</li> &amp;
<li>CIELab data in TIFF, ITU and ICC variants (PhotometricInterpretation type 9, 10 and 11)</li> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
<li>Planar data (PlanarConfiguration type 2/Planar)</li> </td>
<li>ICC profiles (ICCProfile)</li> </tr>
<li>BitsPerSample values up to 16 for most PhotometricInterpretations</li> <tr>
<li>Multiple images (pages) in one file</li> <td>
</ul></li> <a href="https://github.com/haraldk/TwelveMonkeys/wiki/PCX-Plugin">PCX</a>
<li>Write support for most "Baseline" TIFF options </td>
<td>PCX</td>
<ul> <td>ZSoft Paintbrush Format</td>
<li>Uncompressed, PackBits, ZLib and Deflate </li> <td align="center">
<li>Additional support for CCITT T4 and and T6 compressions.</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>Additional support for LZW and JPEG (type 7) compressions</li> </td>
<li>Horizontal differencing Predictor (type 2) for LZW, ZLib, Deflate</li> <td align="center">-</td>
</ul></li> <td>
<li>Native and Standard metadata support</li> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</ul> </td>
</tr>
<p>Legacy formats</p> <tr>
<td></td>
<h4><a id="user-content-hdr---radiance-high-dynamic-range-rgbe-format" class="anchor" href="#hdr---radiance-high-dynamic-range-rgbe-format" aria-hidden="true"><span class="octicon octicon-link"></span></a>HDR - Radiance High Dynamic Range RGBE Format</h4> <td>DCX</td>
<td>Multi-page PCX fax document</td>
<ul> <td align="center">
<li>Read support for the most common RGBE (.hdr) format</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>Samples are converted to 32 bit floating point (<code>float</code>) and normalized using a global tone mapper by default. </td>
<td align="center">-</td>
<ul> <td>
<li>Support for custom global tone mappers</li> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
<li>Alternatively, use a "null-tone mapper", for unnormalized data (allows local tone mapping)</li> </td>
</ul></li> </tr>
<li>Unconverted RGBE samples accessible using <code>readRaster</code></li> <tr>
<li>Standard metadata support</li> <td>
</ul> <a href="https://github.com/haraldk/TwelveMonkeys/wiki/PICT-Plugin">PICT</a>
</td>
<h4><a id="user-content-iff---commodore-amigaelectronic-arts-interchange-file-format" class="anchor" href="#iff---commodore-amigaelectronic-arts-interchange-file-format" aria-hidden="true"><span class="octicon octicon-link"></span></a>IFF - Commodore Amiga/Electronic Arts Interchange File Format</h4> <td>PICT</td>
<td>Apple QuickTime Picture Format</td>
<ul> <td align="center">
<li>Legacy format, allows reading popular image format from the Commodore Amiga computer.</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>Read support for the following file types: </td>
<td align="center">
<ul> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>ILBM Indexed color, 1-8 interleaved bit planes, including 6 bit EHB</li> </td>
<li>ILBM Gray, 8 bit interleaved bit planes</li> <td>
<li>ILBM RGB, 24 and 32 bit interleaved bit planes</li> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
<li>ILBM HAM6 and HAM8</li> </td>
<li>PBM Indexed color, 1-8 bit,</li> </tr>
<li>PBM Gray, 8 bit</li> <tr>
<li>PBM RGB, 24 and 32 bit</li> <td></td>
<li>PBM HAM6 and HAM8</li> <td>PNTG</td>
</ul></li> <td>Apple MacPaint Picture Format</td>
<li>Write support <td align="center">
<g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<ul> </td>
<li>ILBM Indexed color, 1-8 bits per sample, 8 bit gray, 24 and 32 bit true color.</li> <td align="center"></td>
</ul></li> <td>
<li>Support for the following compression types (read/write): <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
<ul> </tr>
<li>Uncompressed</li> <tr>
<li>RLE (PackBits)</li> <td>
</ul></li> <a href="https://github.com/haraldk/TwelveMonkeys/wiki/PNM-Plugin">PNM</a>
</ul> </td>
<td>PAM</td>
<h4><a id="user-content-pcx---zsoft-paintbrush-format" class="anchor" href="#pcx---zsoft-paintbrush-format" aria-hidden="true"><span class="octicon octicon-link"></span></a>PCX - ZSoft Paintbrush Format</h4> <td>NetPBM Portable Any Map</td>
<td align="center">
<ul> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>Read support for the following file types: </td>
<td align="center">
<ul> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>Indexed color, 1, 2, 4 or 8 bits per pixel, bit planes or interleaved</li> </td>
<li>Grayscale, 8 bits per pixel</li> <td>
<li>Color (RGB), 8 bits per pixel component</li> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</ul></li> </td>
<li>Read support for DCX (multi-page) fax format, containing any of the above types</li> </tr>
<li>Support for the following compression types: <tr>
<td></td>
<ul> <td>PBM</td>
<li>Uncompressed (experimental)</li> <td>NetPBM Portable Bit Map</td>
<li>RLE compressed</li> <td align="center">
</ul></li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>Standard metadata support</li> </td>
</ul> <td align="center">-</td>
<td>
<h4><a id="user-content-pict---apple-mac-paint-picture-format" class="anchor" href="#pict---apple-mac-paint-picture-format" aria-hidden="true"><span class="octicon octicon-link"></span></a>PICT - Apple Mac Paint Picture Format</h4> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
<ul> </tr>
<li>Legacy format, especially useful for reading OS X clipboard data.</li> <tr>
<li>Read support for the following file types: <td></td>
<td>PGM</td>
<ul> <td>NetPBM Portable Grey Map</td>
<li>QuickDraw (format support is not complete, but supports most OS X clipboard data as well as RGB pixel data)</li> <td align="center">
<li>QuickDraw bitmap</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>QuickDraw pixmap</li> </td>
<li>QuickTime stills</li> <td align="center">-</td>
</ul></li> <td>
<li>Write support for RGB pixel data: <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
<ul> </tr>
<li>QuickDraw pixmap</li> <tr>
</ul></li> <td></td>
</ul> <td>PPM</td>
<td>NetPBM Portable Pix Map</td>
<h4><a id="user-content-sgi---silicon-graphics-image-format" class="anchor" href="#sgi---silicon-graphics-image-format" aria-hidden="true"><span class="octicon octicon-link"></span></a>SGI - Silicon Graphics Image Format</h4> <td align="center">
<g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<ul> </td>
<li>Read support for the following file types: <td align="center">
<g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<ul> </td>
<li>1, 2, 3 or 4 channel image data</li> <td>
<li>8 or 16 bits per pixel component</li> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</ul></li> </td>
<li>Support for the following compression types: </tr>
<tr>
<ul> <td></td>
<li>Uncompressed</li> <td>PFM</td>
<li>RLE compressed</li> <td>Portable Float Map</td>
</ul></li> <td align="center">
<li>Standard metadata support</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</ul> </td>
<td align="center">-</td>
<h4><a id="user-content-tga---truevision-tga-image-format" class="anchor" href="#tga---truevision-tga-image-format" aria-hidden="true"><span class="octicon octicon-link"></span></a>TGA - Truevision TGA Image Format</h4> <td>
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
<ul> </td>
<li>Read support for the following file types: </tr>
<tr>
<ul> <td>
<li>ColorMapped</li> <a href="https://github.com/haraldk/TwelveMonkeys/wiki/PSD-Plugin">PSD</a>
<li>Monochrome</li> </td>
<li>TrueColor</li> <td>
</ul></li> <strong>PSD</strong>
<li>Support for the following compression types: </td>
<td>Adobe Photoshop Document</td>
<ul> <td align="center">
<li>Uncompressed</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>RLE compressed</li> </td>
</ul></li> <td align="center">-</td>
<li>Standard metadata support</li> <td>
</ul> Native &amp;
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
<p>Icon/other formats</p> </td>
</tr>
<h4><a id="user-content-icns---apple-icon-image" class="anchor" href="#icns---apple-icon-image" aria-hidden="true"><span class="octicon octicon-link"></span></a>ICNS - Apple Icon Image</h4> <tr>
<td></td>
<ul> <td>PSB</td>
<li>Read support for the following icon types: <td>Adobe Photoshop Large Document</td>
<td align="center">
<ul> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>All known "native" icon types</li> </td>
<li>Large PNG encoded icons</li> <td align="center">-</td>
<li>Large JPEG 2000 encoded icons (requires JPEG 2000 ImageIO plugin or fallback to <code>sips</code> command line tool)</li> <td>
</ul></li> Native &amp;
</ul> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
<h4><a id="user-content-ico--cur---ms-windows-icon-and-cursor-formats" class="anchor" href="#ico--cur---ms-windows-icon-and-cursor-formats" aria-hidden="true"><span class="octicon octicon-link"></span></a>ICO &amp; CUR - MS Windows Icon and Cursor Formats</h4> </tr>
<tr>
<ul> <td>
<li>Read support for the following file types: <a href="https://github.com/haraldk/TwelveMonkeys/wiki/SGI-Plugin">SGI</a>
</td>
<ul> <td>SGI</td>
<li>ICO Indexed color, 1, 4 and 8 bit</li> <td>Silicon Graphics Image Format</td>
<li>ICO RGB, 16, 24 and 32 bit</li> <td align="center">
<li>CUR Indexed color, 1, 4 and 8 bit</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
<li>CUR RGB, 16, 24 and 32 bit</li> </td>
</ul></li> <td align="center">-</td>
<li><em>3.1</em> Note: These formats are now part of the BMP plugin</li> <td>
</ul> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
<h4><a id="user-content-thumbsdb---ms-windows-thumbs-db" class="anchor" href="#thumbsdb---ms-windows-thumbs-db" aria-hidden="true"><span class="octicon octicon-link"></span></a>Thumbs.db - MS Windows Thumbs DB</h4> </tr>
<tr>
<ul> <td>
<li>Read support</li> <a href="https://github.com/haraldk/TwelveMonkeys/wiki/TGA-Plugin">TGA</a>
</ul> </td>
<td>TGA</td>
<p>Other formats, using 3rd party libraries</p> <td>Truevision TGA Image Format</td>
<td align="center">
<h4><a id="user-content-svg---scalable-vector-graphics" class="anchor" href="#svg---scalable-vector-graphics" aria-hidden="true"><span class="octicon octicon-link"></span></a>SVG - Scalable Vector Graphics</h4> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<ul> <td align="center">
<li>Read-only support using Batik</li> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</ul> </td>
<td>
<h4><a id="user-content-wmf---ms-windows-metafile" class="anchor" href="#wmf---ms-windows-metafile" aria-hidden="true"><span class="octicon octicon-link"></span></a>WMF - MS Windows MetaFile</h4> <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
<ul> </tr>
<li>Limited read-only support using Batik</li> <tr>
</ul> <td>ThumbsDB</td>
<td>Thumbs.db</td>
<p> <td>MS Windows Thumbs DB</td>
<b>Important note on using Batik:</b> <i>Please read <a href="http://xmlgraphics.apache.org/security.html">The Apache™ XML Graphics Project - Security</a>, and make sure you use <td align="center">
either version 1.6.1, 1.7.1 or 1.8+. </i> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</p> </td>
<td align="center">-</td>
<td>-</td>
</tr>
<tr>
<td>
<a href="https://github.com/haraldk/TwelveMonkeys/wiki/TIFF-Plugin">TIFF</a>
</td>
<td>
<strong>TIFF</strong>
</td>
<td>Aldus/Adobe Tagged Image File Format</td>
<td align="center">
<g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<td align="center">
<g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<td>
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/tiff_metadata.html#ImageMetadata" rel="nofollow">Native</a>
&amp;
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
</tr>
<tr>
<td></td>
<td>BigTIFF</td>
<td></td>
<td align="center">
<g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<td align="center">-</td>
<td>
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/tiff_metadata.html#ImageMetadata" rel="nofollow">Native</a>
&amp;
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
</tr>
<tr>
<td>
<a href="https://github.com/haraldk/TwelveMonkeys/wiki/WebP-Plugin">WebP</a>
</td>
<td>
<strong>WebP</strong>
</td>
<td>Google WebP Format</td>
<td align="center">
<g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<td align="center">-</td>
<td>
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
</tr>
<tr>
<td>XWD</td>
<td>XWD</td>
<td>X11 Window Dump Format</td>
<td align="center">
<g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"></g-emoji>
</td>
<td align="center">-</td>
<td>
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/metadata/doc-files/standard_metadata.html" rel="nofollow">Standard</a>
</td>
</tr>
</tbody>
</table>
<h2><a id="user-content-basic-usage" class="anchor" href="#basic-usage" aria-hidden="true"><span class="octicon octicon-link"></span></a>Basic usage</h2> <h2><a id="user-content-basic-usage" class="anchor" href="#basic-usage" aria-hidden="true"><span class="octicon octicon-link"></span></a>Basic usage</h2>
@ -652,12 +719,12 @@ while (readers.hasNext()) {
&lt;dependency&gt; &lt;dependency&gt;
&lt;groupId&gt;com.twelvemonkeys.imageio&lt;/groupId&gt; &lt;groupId&gt;com.twelvemonkeys.imageio&lt;/groupId&gt;
&lt;artifactId&gt;imageio-jpeg&lt;/artifactId&gt; &lt;artifactId&gt;imageio-jpeg&lt;/artifactId&gt;
&lt;version&gt;3.6&lt;/version&gt; &lt;version&gt;3.7.0&lt;/version&gt;
&lt;/dependency&gt; &lt;/dependency&gt;
&lt;dependency&gt; &lt;dependency&gt;
&lt;groupId&gt;com.twelvemonkeys.imageio&lt;/groupId&gt; &lt;groupId&gt;com.twelvemonkeys.imageio&lt;/groupId&gt;
&lt;artifactId&gt;imageio-tiff&lt;/artifactId&gt; &lt;artifactId&gt;imageio-tiff&lt;/artifactId&gt;
&lt;version&gt;3.6&lt;/version&gt; &lt;version&gt;3.7.0&lt;/version&gt;
&lt;/dependency&gt; &lt;/dependency&gt;
&lt;/dependencies&gt; &lt;/dependencies&gt;
</code></pre> </code></pre>
@ -666,70 +733,70 @@ while (readers.hasNext()) {
<p>To depend on the JPEG and TIFF plugin in your IDE or program, add all of the following JARs to your class path:</p> <p>To depend on the JPEG and TIFF plugin in your IDE or program, add all of the following JARs to your class path:</p>
<pre><code>twelvemonkeys-common-lang-3.6.jar <pre><code>twelvemonkeys-common-lang-3.7.0.jar
twelvemonkeys-common-io-3.6.jar twelvemonkeys-common-io-3.7.0.jar
twelvemonkeys-common-image-3.6.jar twelvemonkeys-common-image-3.7.0.jar
twelvemonkeys-imageio-core-3.6.jar twelvemonkeys-imageio-core-3.7.0.jar
twelvemonkeys-imageio-metadata-3.6.jar twelvemonkeys-imageio-metadata-3.7.0.jar
twelvemonkeys-imageio-jpeg-3.6.jar twelvemonkeys-imageio-jpeg-3.7.0.jar
twelvemonkeys-imageio-tiff-3.6.jar twelvemonkeys-imageio-tiff-3.7.0.jar
</code></pre> </code></pre>
<h3><a id="user-content-links-to-prebuilt-binaries" class="anchor" href="#links-to-prebuilt-binaries" aria-hidden="true"><span class="octicon octicon-link"></span></a>Links to prebuilt binaries</h3> <h3><a id="user-content-links-to-prebuilt-binaries" class="anchor" href="#links-to-prebuilt-binaries" aria-hidden="true"><span class="octicon octicon-link"></span></a>Links to prebuilt binaries</h3>
<h5><a id="user-content-latest-version" class="anchor" href="#latest-version" aria-hidden="true"><span class="octicon octicon-link"></span></a>Latest version (3.2.x)</h5> <h5><a id="user-content-latest-version" class="anchor" href="#latest-version" aria-hidden="true"><span class="octicon octicon-link"></span></a>Latest version</h5>
<p>Requires Java 7 or later.</p> <p>Requires Java 7 or later.</p>
<p>Common dependencies</p> <p>Common dependencies</p>
<ul> <ul>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/common/common-lang/3.6/common-lang-3.6.jar">common-lang-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/common/common-lang/3.7.0/common-lang-3.7.0.jar">common-lang-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/common/common-io/3.6/common-io-3.6.jar">common-io-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/common/common-io/3.7.0/common-io-3.7.0.jar">common-io-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/common/common-image/3.6/common-image-3.6.jar">common-image-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/common/common-image/3.7.0/common-image-3.7.0.jar">common-image-3.7.0.jar</a></li>
</ul> </ul>
<p>ImageIO dependencies</p> <p>ImageIO dependencies</p>
<ul> <ul>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-core/3.6/imageio-core-3.6.jar">imageio-core-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-core/3.7.0/imageio-core-3.7.0.jar">imageio-core-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-metadata/3.6/imageio-metadata-3.6.jar">imageio-metadata-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-metadata/3.7.0/imageio-metadata-3.7.0.jar">imageio-metadata-3.7.0.jar</a></li>
</ul> </ul>
<p>ImageIO plugins</p> <p>ImageIO plugins</p>
<ul> <ul>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-bmp/3.6/imageio-bmp-3.6.jar">imageio-bmp-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-bmp/3.7.0/imageio-bmp-3.7.0.jar">imageio-bmp-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-jpeg/3.6/imageio-jpeg-3.6.jar">imageio-jpeg-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-jpeg/3.7.0/imageio-jpeg-3.7.0.jar">imageio-jpeg-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-tiff/3.6/imageio-tiff-3.6.jar">imageio-tiff-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-tiff/3.7.0/imageio-tiff-3.7.0.jar">imageio-tiff-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-pnm/3.6/imageio-pnm-3.6.jar">imageio-pnm-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-pnm/3.7.0/imageio-pnm-3.7.0.jar">imageio-pnm-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-psd/3.6/imageio-psd-3.6.jar">imageio-psd-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-psd/3.7.0/imageio-psd-3.7.0.jar">imageio-psd-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-hdr/3.6/imageio-hdr-3.6.jar">imageio-hdr-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-hdr/3.7.0/imageio-hdr-3.7.0.jar">imageio-hdr-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-iff/3.6/imageio-iff-3.6.jar">imageio-iff-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-iff/3.7.0/imageio-iff-3.7.0.jar">imageio-iff-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-pcx/3.6/imageio-pcx-3.6.jar">imageio-pcx-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-pcx/3.7.0/imageio-pcx-3.7.0.jar">imageio-pcx-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-pict/3.6/imageio-pict-3.6.jar">imageio-pict-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-pict/3.7.0/imageio-pict-3.7.0.jar">imageio-pict-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-sgi/3.6/imageio-sgi-3.6.jar">imageio-sgi-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-sgi/3.7.0/imageio-sgi-3.7.0.jar">imageio-sgi-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-tga/3.6/imageio-tga-3.6.jar">imageio-tga-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-tga/3.7.0/imageio-tga-3.7.0.jar">imageio-tga-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-icns/3.6/imageio-icns-3.6.jar">imageio-icns-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-icns/3.7.0/imageio-icns-3.7.0.jar">imageio-icns-3.7.0.jar</a></li>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-thumbsdb/3.6/imageio-thumbsdb-3.6.jar">imageio-thumbsdb-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-thumbsdb/3.7.0/imageio-thumbsdb-3.7.0.jar">imageio-thumbsdb-3.7.0.jar</a></li>
</ul> </ul>
<p>ImageIO plugins requiring 3rd party libs</p> <p>ImageIO plugins requiring 3rd party libs</p>
<ul> <ul>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-batik/3.6/imageio-batik-3.6.jar">imageio-batik-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-batik/3.7.0/imageio-batik-3.7.0.jar">imageio-batik-3.7.0.jar</a></li>
</ul> </ul>
<p>Photoshop Path support for ImageIO</p> <p>Photoshop Path support for ImageIO</p>
<ul> <ul>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-clippath/3.6/imageio-clippath-3.6.jar">imageio-clippath-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/imageio/imageio-clippath/3.7.0/imageio-clippath-3.7.0.jar">imageio-clippath-3.7.0.jar</a></li>
</ul> </ul>
<p>Servlet support</p> <p>Servlet support</p>
<ul> <ul>
<li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/servlet/servlet/3.6/servlet-3.6.jar">servlet-3.6.jar</a></li> <li><a href="http://search.maven.org/remotecontent?filepath=com/twelvemonkeys/servlet/servlet/3.7.0/servlet-3.7.0.jar">servlet-3.7.0.jar</a></li>
</ul> </ul>
<h5><a id="user-content-old-version-30x" class="anchor" href="#old-version-30x" aria-hidden="true"><span class="octicon octicon-link"></span></a>Old version (3.0.x)</h5> <h5><a id="user-content-old-version-30x" class="anchor" href="#old-version-30x" aria-hidden="true"><span class="octicon octicon-link"></span></a>Old version (3.0.x)</h5>