You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by jo...@apache.org on 2007/12/31 16:22:36 UTC
svn commit: r607739 -
/cocoon/trunk/blocks/cocoon-imageop/cocoon-imageop-impl/src/main/java/org/apache/cocoon/reading/imageop/ImageOpReader.java
Author: joerg
Date: Mon Dec 31 07:22:35 2007
New Revision: 607739
URL: http://svn.apache.org/viewvc?rev=607739&view=rev
Log:
COCOON-2048: add workaround for "This method is not supported by this color model" exception
Modified:
cocoon/trunk/blocks/cocoon-imageop/cocoon-imageop-impl/src/main/java/org/apache/cocoon/reading/imageop/ImageOpReader.java
Modified: cocoon/trunk/blocks/cocoon-imageop/cocoon-imageop-impl/src/main/java/org/apache/cocoon/reading/imageop/ImageOpReader.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-imageop/cocoon-imageop-impl/src/main/java/org/apache/cocoon/reading/imageop/ImageOpReader.java?rev=607739&r1=607738&r2=607739&view=diff
==============================================================================
--- cocoon/trunk/blocks/cocoon-imageop/cocoon-imageop-impl/src/main/java/org/apache/cocoon/reading/imageop/ImageOpReader.java (original)
+++ cocoon/trunk/blocks/cocoon-imageop/cocoon-imageop-impl/src/main/java/org/apache/cocoon/reading/imageop/ImageOpReader.java Mon Dec 31 07:22:35 2007
@@ -244,18 +244,21 @@
}
}
if (newImage == null) {
- ColorModel cm = image.getColorModel();
- if (getLogger().isDebugEnabled()) {
- getLogger().debug( "Out Bounds: " + src.getBounds() );
- }
- newImage = new BufferedImage( cm, src, true, new Hashtable() );
- // Not sure what this should really be --------------^^^^^
- }
- int minX = newImage.getMinX();
- int minY = newImage.getMinY();
- int width = newImage.getWidth();
- int height = newImage.getHeight();
- if(getLogger().isInfoEnabled()) {
+ ColorModel cm = image.getColorModel();
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug( "Out Bounds: " + src.getBounds() );
+ }
+ // Note: use cm.isAlphaPremultiplied() as third parameter (isRasterPremultiplied)
+ // because this avoids the possible non-working call to cm.coerceData() (eg. with png
+ // images) - see the code of BufferedImage
+ newImage = new BufferedImage(cm, src, cm.isAlphaPremultiplied(), new Hashtable());
+ }
+
+ if (getLogger().isInfoEnabled()) {
+ int minX = newImage.getMinX();
+ int minY = newImage.getMinY();
+ int width = newImage.getWidth();
+ int height = newImage.getHeight();
getLogger().info( "Image: " + minX + ", " + minY + ", " + width + ", " + height );
}
@@ -291,28 +294,5 @@
// Niclas Hedhman: Stream is closed in superclass.
}
}
-/*
- private void printRaster( WritableRaster r )
- {
- DataBuffer data = r.getDataBuffer();
- int numBanks = data.getNumBanks();
- int size = data.getSize();
- for( int i=0 ; i < size ; i++ )
- {
- long value = 0;
- for( int j=0 ; j < numBanks ; j++ )
- {
- int v = data.getElem( j, i );
- if( v < 256 )
- value = value << 8 ;
- else
- value = value << 16;
- value = value + v;
- }
- if(getLogger().isDebugEnabled()) {
- getLogger().debug( Long.toHexString( value ) );
- }
- }
- }
-*/
+
}