You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by da...@apache.org on 2012/02/26 09:23:50 UTC

svn commit: r1293771 - in /commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp: BmpImageParser.java pixelparsers/PixelParser.java pixelparsers/PixelParserRle.java pixelparsers/PixelParserSimple.java

Author: damjan
Date: Sun Feb 26 08:23:50 2012
New Revision: 1293771

URL: http://svn.apache.org/viewvc?rev=1293771&view=rev
Log:
Use ImageBuilder for BMP files.


Modified:
    commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java
    commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserSimple.java

Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java?rev=1293771&r1=1293770&r2=1293771&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/BmpImageParser.java Sun Feb 26 08:23:50 2012
@@ -37,6 +37,7 @@ import org.apache.commons.sanselan.Image
 import org.apache.commons.sanselan.ImageWriteException;
 import org.apache.commons.sanselan.common.BinaryOutputStream;
 import org.apache.commons.sanselan.common.IImageMetadata;
+import org.apache.commons.sanselan.common.ImageBuilder;
 import org.apache.commons.sanselan.common.bytesource.ByteSource;
 import org.apache.commons.sanselan.formats.bmp.pixelparsers.PixelParser;
 import org.apache.commons.sanselan.formats.bmp.pixelparsers.PixelParserBitFields;
@@ -713,9 +714,6 @@ public class BmpImageParser extends Imag
         int width = bhi.width;
         int height = bhi.height;
 
-        BufferedImage result = getBufferedImageFactory(params)
-                .getColorBufferedImage(width, height, true);
-
         if (verbose)
         {
             System.out.println("width: " + width);
@@ -725,10 +723,10 @@ public class BmpImageParser extends Imag
         }
 
         PixelParser pixelParser = ic.pixelParser;
+        ImageBuilder imageBuilder = new ImageBuilder(width, height, true);
+        pixelParser.processImage(imageBuilder);
 
-        pixelParser.processImage(result);
-
-        return result;
+        return imageBuilder.getBufferedImage();
 
     }
 

Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java?rev=1293771&r1=1293770&r2=1293771&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParser.java Sun Feb 26 08:23:50 2012
@@ -16,12 +16,12 @@
  */
 package org.apache.commons.sanselan.formats.bmp.pixelparsers;
 
-import java.awt.image.BufferedImage;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
 import org.apache.commons.sanselan.ImageReadException;
 import org.apache.commons.sanselan.common.BinaryFileParser;
+import org.apache.commons.sanselan.common.ImageBuilder;
 import org.apache.commons.sanselan.formats.bmp.BmpHeaderInfo;
 
 public abstract class PixelParser
@@ -43,7 +43,7 @@ public abstract class PixelParser
         is = new ByteArrayInputStream(ImageData);
     }
 
-    public abstract void processImage(BufferedImage bi)
+    public abstract void processImage(ImageBuilder imageBuilder)
             throws ImageReadException, IOException;
 
     protected int getColorTableRGB(int index)

Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java?rev=1293771&r1=1293770&r2=1293771&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserRle.java Sun Feb 26 08:23:50 2012
@@ -21,6 +21,7 @@ import java.awt.image.DataBuffer;
 import java.io.IOException;
 
 import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.sanselan.common.ImageBuilder;
 import org.apache.commons.sanselan.formats.bmp.BmpHeaderInfo;
 
 public class PixelParserRle extends PixelParser
@@ -70,7 +71,7 @@ public class PixelParserRle extends Pixe
     }
 
     private int processByteOfData(int rgbs[], int repeat, int x, int y,
-            int width, int height, DataBuffer db, BufferedImage bi)
+            int width, int height, ImageBuilder imageBuilder)
     {
         //                int rbg
         int pixels_written = 0;
@@ -83,7 +84,7 @@ public class PixelParserRle extends Pixe
                 //                    rgb = getNextRGB();
                 int rgb = rgbs[i % rgbs.length];
                 //                                bi.setRGB(x, y, rgb);
-                db.setElem(y * bhi.width + x, rgb);
+                imageBuilder.setRGB(x, y, rgb);
                 //                                bi.setRGB(x, y, 0xff00ff00);
             }
             else
@@ -98,11 +99,9 @@ public class PixelParserRle extends Pixe
         return pixels_written;
     }
 
-    public void processImage(BufferedImage bi) throws ImageReadException,
+    public void processImage(ImageBuilder imageBuilder) throws ImageReadException,
             IOException
     {
-        DataBuffer db = bi.getRaster().getDataBuffer();
-
         int count = 0;
         int width = bhi.width;
         int height = bhi.height;
@@ -183,7 +182,7 @@ public class PixelParserRle extends Pixe
                             //                                    + SamplesPerByte);
                             //                            System.out.println("towrite: " + towrite);
                             int written = processByteOfData(samples, towrite,
-                                    x, y, width, height, db, bi);
+                                    x, y, width, height, imageBuilder);
                             //                            System.out.println("written: " + written);
                             //                            System.out.println("");
                             x += written;
@@ -198,7 +197,7 @@ public class PixelParserRle extends Pixe
             {
                 int rgbs[] = convertDataToSamples(b);
 
-                x += processByteOfData(rgbs, a, x, y, width, height, db, bi);
+                x += processByteOfData(rgbs, a, x, y, width, height, imageBuilder);
                 //                    x += processByteOfData(b, a, x, y, width, height, bi);
 
             }

Modified: commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserSimple.java
URL: http://svn.apache.org/viewvc/commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserSimple.java?rev=1293771&r1=1293770&r2=1293771&view=diff
==============================================================================
--- commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserSimple.java (original)
+++ commons/proper/sanselan/trunk/src/main/java/org/apache/commons/sanselan/formats/bmp/pixelparsers/PixelParserSimple.java Sun Feb 26 08:23:50 2012
@@ -16,10 +16,10 @@
  */
 package org.apache.commons.sanselan.formats.bmp.pixelparsers;
 
-import java.awt.image.BufferedImage;
 import java.io.IOException;
 
 import org.apache.commons.sanselan.ImageReadException;
+import org.apache.commons.sanselan.common.ImageBuilder;
 import org.apache.commons.sanselan.formats.bmp.BmpHeaderInfo;
 
 public abstract class PixelParserSimple extends PixelParser
@@ -34,7 +34,7 @@ public abstract class PixelParserSimple 
 
     public abstract void newline() throws ImageReadException, IOException;
 
-    public void processImage(BufferedImage bi) throws ImageReadException,
+    public void processImage(ImageBuilder imageBuilder) throws ImageReadException,
             IOException
     {
 //        DataBuffer db = bi.getRaster().getDataBuffer();
@@ -45,7 +45,7 @@ public abstract class PixelParserSimple 
             {
                 int rgb = getNextRGB();
 
-                bi.setRGB(x, y, rgb);
+                imageBuilder.setRGB(x, y, rgb);
 //                db.setElem(y * bhi.width + x, rgb);
             }
             newline();