Author: tilman
Date: Thu Mar 13 16:37:31 2014
New Revision: 1577233

URL: http://svn.apache.org/r1577233
Log:
PDFBOX-1983: fix CCITTFactory; some code formatting

Modified:
    
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/CCITTFactory.java
    
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactory.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/CCITTFactory.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/CCITTFactory.java?rev=1577233&r1=1577232&r2=1577233&view=diff
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/CCITTFactory.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/CCITTFactory.java
 Thu Mar 13 16:37:31 2014
@@ -16,8 +16,9 @@
  */
 package org.apache.pdfbox.pdmodel.graphics.image;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.OutputStream;
 
 import org.apache.pdfbox.cos.COSDictionary;
@@ -40,18 +41,22 @@ public final class CCITTFactory
 
     /**
      * Creates a new CCITT Fax compressed Image XObject from a TIFF file.
+     * 
      * @param document the document to create the image as part of.
      * @param reader the random access TIFF file which contains a suitable 
CCITT compressed image
+     * @return a new Image XObject
      * @throws IOException if there is an error reading the TIFF data.
      */
     public static PDImageXObject createFromRandomAccess(PDDocument document, 
RandomAccess reader)
             throws IOException
     {
-        PDImageXObject pdImage = new PDImageXObject(document);
-
         COSDictionary decodeParms = new COSDictionary();
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        extractFromTiff(reader, bos, decodeParms);
+        ByteArrayInputStream byteStream = new 
ByteArrayInputStream(bos.toByteArray());
+        PDImageXObject pdImage = new PDImageXObject(new PDStream(document, 
byteStream, true), null);
+
         COSDictionary dict = pdImage.getCOSStream();
-        extractFromTiff(reader, pdImage.getCOSStream().createFilteredStream(), 
decodeParms);
 
         dict.setItem(COSName.FILTER, COSName.CCITTFAX_DECODE);
         dict.setItem(COSName.SUBTYPE, COSName.IMAGE);
@@ -106,7 +111,6 @@ public final class CCITTFactory
             // Other point us to where to find the data stream
             // The only parm which might change as a result of other options 
is K, so
             // We'll deal with that as a special;
-
             int k = -1000; // Default Non CCITT compression
             int dataoffset = 0;
             int datalength = 0;
@@ -126,102 +130,102 @@ public final class CCITTFactory
                 {
                     switch (type)
                     {
-                    case 1:
-                    {
-                        val = val >> 24;
-                        break; // byte value
-                    }
-                    case 3:
-                    {
-                        val = val >> 16;
-                        break; // short value
-                    }
-                    case 4:
-                    {
-                        break; // long value
-                    }
-                    default:
-                    {
-                        // do nothing
-                    }
+                        case 1:
+                        {
+                            val = val >> 24;
+                            break; // byte value
+                        }
+                        case 3:
+                        {
+                            val = val >> 16;
+                            break; // short value
+                        }
+                        case 4:
+                        {
+                            break; // long value
+                        }
+                        default:
+                        {
+                            // do nothing
+                        }
                     }
                 }
                 switch (tag)
                 {
-                case 256:
-                {
-                    params.setInt(COSName.COLUMNS, val);
-                    break;
-                }
-                case 257:
-                {
-                    params.setInt(COSName.ROWS, val);
-                    break;
-                }
-                case 259:
-                {
-                    if (val == 4)
+                    case 256:
                     {
-                        k = -1;
+                        params.setInt(COSName.COLUMNS, val);
+                        break;
                     }
-                    if (val == 3)
+                    case 257:
                     {
-                        k = 0;
+                        params.setInt(COSName.ROWS, val);
+                        break;
+                    }
+                    case 259:
+                    {
+                        if (val == 4)
+                        {
+                            k = -1;
+                        }
+                        if (val == 3)
+                        {
+                            k = 0;
+                        }
+                        break; // T6/T4 Compression
+                    }
+                    case 262:
+                    {
+                        if (val == 1)
+                        {
+                            params.setBoolean(COSName.BLACK_IS_1, true);
+                        }
+                        break;
+                    }
+                    case 273:
+                    {
+                        if (count == 1)
+                        {
+                            dataoffset = val;
+                        }
+                        break;
+                    }
+                    case 279:
+                    {
+                        if (count == 1)
+                        {
+                            datalength = val;
+                        }
+                        break;
+                    }
+                    case 292:
+                    {
+                        if (val == 1)
+                        {
+                            k = 50; // T4 2D - arbitary K value
+                        }
+                        break;
+                    }
+                    case 324:
+                    {
+                        if (count == 1)
+                        {
+                            dataoffset = val;
+                        }
+                        break;
+                    }
+                    case 325:
+                    {
+                        if (count == 1)
+                        {
+                            datalength = val;
+                        }
+                        break;
                     }
-                    break; // T6/T4 Compression
-                }
-                case 262:
-                {
-                    if (val == 1)
-                    {
-                        params.setBoolean(COSName.BLACK_IS_1, true);
-                    }
-                    break;
-                }
-                case 273:
-                {
-                    if (count == 1)
-                    {
-                        dataoffset = val;
-                    }
-                    break;
-                }
-                case 279:
-                {
-                    if (count == 1)
-                    {
-                        datalength = val;
-                    }
-                    break;
-                }
-                case 292:
-                {
-                    if (val == 1)
-                    {
-                        k = 50; // T4 2D - arbitary K value
-                    }
-                    break;
-                }
-                case 324:
-                {
-                    if (count == 1)
-                    {
-                        dataoffset = val;
-                    }
-                    break;
-                }
-                case 325:
-                {
-                    if (count == 1)
+                    default:
                     {
-                        datalength = val;
+                        // do nothing
                     }
-                    break;
-                }
-                default:
-                {
-                    // do nothing
-                }
                 }
             }
 

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactory.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactory.java?rev=1577233&r1=1577232&r2=1577233&view=diff
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactory.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/JPEGFactory.java
 Thu Mar 13 16:37:31 2014
@@ -17,7 +17,6 @@
 package org.apache.pdfbox.pdmodel.graphics.image;
 
 import java.awt.image.BufferedImage;
-import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.io.IOException;
@@ -54,10 +53,12 @@ public final class JPEGFactory extends I
 
     /**
      * Creates a new JPEG Image XObject from an input stream containing JPEG 
data.
+     * 
      * The input stream data will be preserved and embedded in the PDF file 
without modification.
      * @param document the document where the image will be created
      * @param stream a stream of JPEG data
      * @return a new Image XObject
+     * 
      * @throws IOException if the input stream cannot be read
      */
     public static PDImageXObject createFromStream(PDDocument document, 
InputStream stream)
@@ -93,9 +94,11 @@ public final class JPEGFactory extends I
         // find suitable image reader
         Iterator readers = ImageIO.getImageReadersByFormatName("JPEG");
         ImageReader reader = null;
-        while(readers.hasNext()) {
-            reader = (ImageReader)readers.next();
-            if(reader.canReadRaster()) {
+        while (readers.hasNext())
+        {
+            reader = (ImageReader) readers.next();
+            if (reader.canReadRaster())
+            {
                 break;
             }
         }


Reply via email to