Return-Path: X-Original-To: apmail-pdfbox-commits-archive@www.apache.org Delivered-To: apmail-pdfbox-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9FD1F797C for ; Tue, 1 Nov 2011 15:17:57 +0000 (UTC) Received: (qmail 16017 invoked by uid 500); 1 Nov 2011 15:17:57 -0000 Delivered-To: apmail-pdfbox-commits-archive@pdfbox.apache.org Received: (qmail 15975 invoked by uid 500); 1 Nov 2011 15:17:57 -0000 Mailing-List: contact commits-help@pdfbox.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@pdfbox.apache.org Delivered-To: mailing list commits@pdfbox.apache.org Received: (qmail 15953 invoked by uid 99); 1 Nov 2011 15:17:57 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Nov 2011 15:17:57 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Nov 2011 15:17:55 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id A8C2C2388A6C; Tue, 1 Nov 2011 15:17:35 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1196047 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDJpeg.java Date: Tue, 01 Nov 2011 15:17:35 -0000 To: commits@pdfbox.apache.org From: lehmi@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111101151735.A8C2C2388A6C@eris.apache.org> Author: lehmi Date: Tue Nov 1 15:17:34 2011 New Revision: 1196047 URL: http://svn.apache.org/viewvc?rev=1196047&view=rev Log: PDFBOX-1154: use the CMYK-color conversion for ICC-based colorspaces with 4 components, removed an unused method Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDJpeg.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDJpeg.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDJpeg.java?rev=1196047&r1=1196046&r2=1196047&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDJpeg.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDJpeg.java Tue Nov 1 15:17:34 2011 @@ -30,8 +30,6 @@ import java.awt.image.WritableRaster; import java.io.InputStream; import java.io.IOException; import java.io.OutputStream; -import java.io.File; -import java.io.FileInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -61,6 +59,7 @@ import org.apache.pdfbox.pdmodel.graphic import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK; import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray; import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB; +import org.apache.pdfbox.pdmodel.graphics.color.PDICCBased; import org.apache.pdfbox.pdmodel.graphics.color.PDSeparation; /** @@ -252,7 +251,8 @@ public class PDJpeg extends PDXObjectIma PDColorSpace cs = getColorSpace(); try { - if (cs instanceof PDDeviceCMYK) + if (cs instanceof PDDeviceCMYK + || (cs instanceof PDICCBased && cs.getNumberOfComponents() == 4)) { // create BufferedImage based on the converted color values bi = convertCMYK2RGB(readImage(img), cs); @@ -318,45 +318,6 @@ public class PDJpeg extends PDXObjectIma } } - /** - * Returns the given file as byte array. - * @param file File to be read - * @return given file as byte array - * @throws IOException if something went wrong during reading the file - */ - public static byte[] getBytesFromFile(File file) throws IOException - { - InputStream is = new FileInputStream(file); - long length = file.length(); - - if (length > Integer.MAX_VALUE) - { - // File is too large - throw new IOException("File is tooo large"); - } - - // Create the byte array to hold the data - byte[] bytes = new byte[(int)length]; - - // Read in the bytes - int offset = 0; - int numRead = 0; - - while (offset < bytes.length - && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) - { - offset += numRead; - } - - // Ensure all the bytes have been read in - if (offset < bytes.length) - { - throw new IOException("Could not completely read file "+file.getName()); - } - is.close(); - return bytes; - } - private int getHeaderEndPos(byte[] image) { for (int i = 0; i < image.length; i++) @@ -411,7 +372,7 @@ public class PDJpeg extends PDXObjectIma return raster; } - // CMYK jpegs are not supported by JAI, so that we have the conversion on our own + // CMYK jpegs are not supported by JAI, so that we have to do the conversion on our own private BufferedImage convertCMYK2RGB(Raster raster, PDColorSpace colorspace) throws IOException { // create a java color space to be used for conversion