javax.imageio.IIOException: Unsupported Image Type

There are no available Samebug tips for this exception. Do you have an idea how to solve this issue? A short tip would help users who saw this issue last week.

  • I have a PDF with CMYK images inside and i need to extract the images in the RGB format. But the PDJpeg class seems to not work correctly; the colors are bad. Example: - Original image in te PDF : http://ludoda.free.fr/IMAGE_IN_PDF.jpg - Extracted image: http://ludoda.free.fr/IMAGE_EXTRACTED.jpg You can download the PDF : http://ludoda.free.fr/PORSCHE_CMYK.PDF and try my simple Test Case (I'm using PDFbox 1.8.5): {code} import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.imageio.ImageIO; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.graphics.xobject.PDJpeg; import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObject; import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage; public class TestCase { public static void main(String[] args) { try { System.out.println("START EXTRACTING IMAGES..."); read_pdf(); System.out.println("COMPLETE"); } catch (IOException ex) { System.out.println("" + ex); } } public static void read_pdf() throws IOException { PDDocument document = null; document = PDDocument.load("C:\\temp\\PORSCHE_CMYK.pdf"); @SuppressWarnings("unchecked") List<PDPage> pages = document.getDocumentCatalog().getAllPages(); Iterator<PDPage> iter = pages.iterator(); int i =1; while (iter.hasNext()) { PDPage page = (PDPage) iter.next(); PDResources resources = page.getResources(); Map<String, PDXObject> pageImages = resources.getXObjects(); if (pageImages != null) { Iterator<String> imageIter = pageImages.keySet().iterator(); while (imageIter.hasNext()) { String key = (String) imageIter.next(); if(pageImages.get(key) instanceof PDXObjectImage) { PDJpeg image = (PDJpeg) pageImages.get(key); // Test 1 : write2file image.write2file("C:\\workspace\\JAVA_PDFTools\\temp\\image" + i); // Test 2: getRGBImage BufferedImage bimage=image.getRGBImage(); File outputfile = new File("C:\\workspace\\JAVA_PDFTools\\temp\\image" + i+"_buffered.jpg"); ImageIO.write(bimage, "jpg", outputfile); i ++; } } } } } } {code}
    via by Ludovic Davoine,
  • I have a PDF with CMYK images inside and i need to extract the images in the RGB format. But the PDJpeg class seems to not work correctly; the colors are bad. Example: - Original image in te PDF : http://ludoda.free.fr/IMAGE_IN_PDF.jpg - Extracted image: http://ludoda.free.fr/IMAGE_EXTRACTED.jpg You can download the PDF : http://ludoda.free.fr/PORSCHE_CMYK.PDF and try my simple Test Case (I'm using PDFbox 1.8.5): {code} import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.imageio.ImageIO; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDResources; import org.apache.pdfbox.pdmodel.graphics.xobject.PDJpeg; import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObject; import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage; public class TestCase { public static void main(String[] args) { try { System.out.println("START EXTRACTING IMAGES..."); read_pdf(); System.out.println("COMPLETE"); } catch (IOException ex) { System.out.println("" + ex); } } public static void read_pdf() throws IOException { PDDocument document = null; document = PDDocument.load("C:\\temp\\PORSCHE_CMYK.pdf"); @SuppressWarnings("unchecked") List<PDPage> pages = document.getDocumentCatalog().getAllPages(); Iterator<PDPage> iter = pages.iterator(); int i =1; while (iter.hasNext()) { PDPage page = (PDPage) iter.next(); PDResources resources = page.getResources(); Map<String, PDXObject> pageImages = resources.getXObjects(); if (pageImages != null) { Iterator<String> imageIter = pageImages.keySet().iterator(); while (imageIter.hasNext()) { String key = (String) imageIter.next(); if(pageImages.get(key) instanceof PDXObjectImage) { PDJpeg image = (PDJpeg) pageImages.get(key); // Test 1 : write2file image.write2file("C:\\workspace\\JAVA_PDFTools\\temp\\image" + i); // Test 2: getRGBImage BufferedImage bimage=image.getRGBImage(); File outputfile = new File("C:\\workspace\\JAVA_PDFTools\\temp\\image" + i+"_buffered.jpg"); ImageIO.write(bimage, "jpg", outputfile); i ++; } } } } } } {code}
    via by Ludovic Davoine,
  • Issue with posters (r2346)
    via GitHub by Omertron
    ,
    • javax.imageio.IIOException: Unsupported Image Type at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source) at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source) at javax.imageio.ImageIO.read(Unknown Source) at javax.imageio.ImageIO.read(Unknown Source) at org.apache.pdfbox.filter.JPXFilter.decode(JPXFilter.java:56) at org.apache.pdfbox.cos.COSStream.doDecode(COSStream.java:342) at org.apache.pdfbox.cos.COSStream.doDecode(COSStream.java:254) at org.apache.pdfbox.cos.COSStream.getUnfilteredStream(COSStream.java:188) at org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:232) at org.apache.pdfbox.pdmodel.common.PDStream.getByteArray(PDStream.java:510)

    Users with the same issue

    Unknown visitor1 times, last one,
    Unknown visitor1 times, last one,
    Unknown visitor1 times, last one,
    Unknown visitor1 times, last one,
    serious2monkeys
    serious2monkeys3 times, last one,
    13 more bugmates