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>