You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by jb...@apache.org on 2006/03/02 16:38:32 UTC

svn commit: r382414 - in /cocoon/branches/BRANCH_2_1_X: src/java/org/apache/cocoon/reading/ImageReader.java status.xml

Author: jbq
Date: Thu Mar  2 07:38:31 2006
New Revision: 382414

URL: http://svn.apache.org/viewcvs?rev=382414&view=rev
Log:
Fix COCOON-1371: Allow ImageReader to process other image formats than JPEG

Modified:
    cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/reading/ImageReader.java
    cocoon/branches/BRANCH_2_1_X/status.xml

Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/reading/ImageReader.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/reading/ImageReader.java?rev=382414&r1=382413&r2=382414&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/reading/ImageReader.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/reading/ImageReader.java Thu Mar  2 07:38:31 2006
@@ -27,6 +27,7 @@
 import java.io.InputStream;
 import java.io.Serializable;
 import java.util.Map;
+import javax.swing.ImageIcon;
 
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.cocoon.ProcessingException;
@@ -246,6 +247,20 @@
         return new AffineTransform(wm, 0.0d, 0.0d, hm, 0.0d, 0.0d);
     }
 
+    protected byte[] readFully(InputStream in) throws IOException
+	{
+		byte tmpbuffer[] = new byte[4096];
+		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		int i;
+		while (-1!=(i = in.read(tmpbuffer)))
+			{
+			baos.write(tmpbuffer, 0, i);
+			}
+		baos.flush();
+		return baos.toByteArray();
+	}
+
+    
     protected void processStream(InputStream inputStream) throws IOException, ProcessingException {
         if (hasTransform()) {
             if (getLogger().isDebugEnabled()) {
@@ -277,14 +292,15 @@
              */
 
             try {
-                JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(inputStream);
-                BufferedImage original = decoder.decodeAsBufferedImage();
+            	byte content[] = readFully(inputStream);
+            	ImageIcon icon = new ImageIcon(content);
+            	BufferedImage original = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
                 BufferedImage currentImage = original;
+                currentImage.getGraphics().drawImage(icon.getImage(), 0, 0, null);
 
                 if (width > 0 || height > 0) {
-                    JPEGDecodeParam decodeParam = decoder.getJPEGDecodeParam();
-                    double ow = decodeParam.getWidth();
-                    double oh = decodeParam.getHeight();
+                    double ow = icon.getImage().getWidth(null);
+                    double oh = icon.getImage().getHeight(null);
 
                     if (usePercent) {
                         if (width > 0) {

Modified: cocoon/branches/BRANCH_2_1_X/status.xml
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/status.xml?rev=382414&r1=382413&r2=382414&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/status.xml (original)
+++ cocoon/branches/BRANCH_2_1_X/status.xml Thu Mar  2 07:38:31 2006
@@ -180,6 +180,9 @@
   <release version="@version@" date="@date@">
 -->
   <release version="2.1.9" date="TBD">
+    <action dev="JBQ" type="fix" fixes-bug="COCOON-1371" due-to="George Georgovassilis" due-to-email="georgeg@open.gr">
+      Allow ImageReader to process other image formats than JPEG
+    </action>
     <action dev="AG" type="fix" fixes-bug="COCOON-1785" due-to="Eric Meyer" due-to-email="eric.meyer@quoininc.com">
        Form block: I18nMessage - null parameter values causes NPE.
     </action>