You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by je...@apache.org on 2011/02/07 21:29:48 UTC
svn commit: r1068104 - in /xmlgraphics/batik/trunk:
resources/META-INF/services/
sources/org/apache/batik/ext/awt/image/codec/imageio/
sources/org/apache/batik/ext/awt/image/codec/jpeg/
sources/org/apache/batik/ext/awt/image/spi/
Author: jeremias
Date: Mon Feb 7 20:29:48 2011
New Revision: 1068104
URL: http://svn.apache.org/viewvc?rev=1068104&view=rev
Log:
ImageIOJPEGImageWriter is now a full replacement for JPEGImageWriter.
Removed:
xmlgraphics/batik/trunk/sources/org/apache/batik/ext/awt/image/codec/jpeg/JPEGImageWriter.java
Modified:
xmlgraphics/batik/trunk/resources/META-INF/services/org.apache.batik.ext.awt.image.spi.ImageWriter
xmlgraphics/batik/trunk/sources/org/apache/batik/ext/awt/image/codec/imageio/ImageIOJPEGImageWriter.java
xmlgraphics/batik/trunk/sources/org/apache/batik/ext/awt/image/spi/ImageWriterParams.java
Modified: xmlgraphics/batik/trunk/resources/META-INF/services/org.apache.batik.ext.awt.image.spi.ImageWriter
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/resources/META-INF/services/org.apache.batik.ext.awt.image.spi.ImageWriter?rev=1068104&r1=1068103&r2=1068104&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/resources/META-INF/services/org.apache.batik.ext.awt.image.spi.ImageWriter (original)
+++ xmlgraphics/batik/trunk/resources/META-INF/services/org.apache.batik.ext.awt.image.spi.ImageWriter Mon Feb 7 20:29:48 2011
@@ -21,7 +21,6 @@
# -----------------------------------------------------------------------------
org.apache.batik.ext.awt.image.codec.png.PNGImageWriter
-org.apache.batik.ext.awt.image.codec.jpeg.JPEGImageWriter
#org.apache.batik.ext.awt.image.codec.imageio.ImageIOPNGImageWriter
#org.apache.batik.ext.awt.image.codec.imageio.ImageIOTIFFImageWriter
-#org.apache.batik.ext.awt.image.codec.imageio.ImageIOJPEGImageWriter
+org.apache.batik.ext.awt.image.codec.imageio.ImageIOJPEGImageWriter
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/ext/awt/image/codec/imageio/ImageIOJPEGImageWriter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/ext/awt/image/codec/imageio/ImageIOJPEGImageWriter.java?rev=1068104&r1=1068103&r2=1068104&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/ext/awt/image/codec/imageio/ImageIOJPEGImageWriter.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/ext/awt/image/codec/imageio/ImageIOJPEGImageWriter.java Mon Feb 7 20:29:48 2011
@@ -37,25 +37,23 @@ import org.apache.batik.ext.awt.image.sp
public class ImageIOJPEGImageWriter extends ImageIOImageWriter {
private static final String JPEG_NATIVE_FORMAT = "javax_imageio_jpeg_image_1.0";
-
+
/**
* Main constructor.
*/
public ImageIOJPEGImageWriter() {
super("image/jpeg");
}
-
- /**
- * @see ImageIOImageWriter#updateMetadata(javax.imageio.metadata.IIOMetadata, ImageWriterParams)
- */
+
+ /** {@inheritDoc} */
+ @Override
protected IIOMetadata updateMetadata(IIOMetadata meta, ImageWriterParams params) {
//ImageIODebugUtil.dumpMetadata(meta);
if (JPEG_NATIVE_FORMAT.equals(meta.getNativeMetadataFormatName())) {
meta = addAdobeTransform(meta);
IIOMetadataNode root = (IIOMetadataNode)meta.getAsTree(JPEG_NATIVE_FORMAT);
- //IIOMetadataNode root = new IIOMetadataNode(jpegmeta);
-
+
IIOMetadataNode jv = getChildNode(root, "JPEGvariety");
if (jv == null) {
jv = new IIOMetadataNode("JPEGvariety");
@@ -78,33 +76,22 @@ public class ImageIOJPEGImageWriter exte
child.setAttribute("Ydensity", params.getResolution().toString());
child.setAttribute("thumbWidth", null);
child.setAttribute("thumbHeight", null);
-
+
}
-
- /*
- IIOMetadataNode ms = getChildNode(root, "markerSequence");
- if (ms == null) {
- ms = new IIOMetadataNode("markerSequence");
- root.appendChild(ms);
- }*/
-
+
try {
meta.setFromTree(JPEG_NATIVE_FORMAT, root);
- //meta.mergeTree(JPEG_NATIVE_FORMAT, root);
} catch (IIOInvalidTreeException e) {
- throw new RuntimeException("Cannot update image metadata: "
+ throw new RuntimeException("Cannot update image metadata: "
+ e.getMessage(), e);
}
//ImageIODebugUtil.dumpMetadata(meta);
-
- //meta = super.updateMetadata(meta, params);
- //ImageIODebugUtil.dumpMetadata(meta);
}
-
+
return meta;
}
-
+
private static IIOMetadata addAdobeTransform(IIOMetadata meta) {
// add the adobe transformation (transform 1 -> to YCbCr)
IIOMetadataNode root = (IIOMetadataNode)meta.getAsTree(JPEG_NATIVE_FORMAT);
@@ -130,32 +117,30 @@ public class ImageIOJPEGImageWriter exte
try {
meta.setFromTree(JPEG_NATIVE_FORMAT, root);
} catch (IIOInvalidTreeException e) {
- throw new RuntimeException("Cannot update image metadata: "
+ throw new RuntimeException("Cannot update image metadata: "
+ e.getMessage(), e);
}
return meta;
- }
-
- /**
- * @see ImageIOImageWriter#getDefaultWriteParam(javax.imageio.ImageWriter, java.awt.image.RenderedImage, ImageWriterParams)
- */
+ }
+
+ /** {@inheritDoc} */
+ @Override
protected ImageWriteParam getDefaultWriteParam(
ImageWriter iiowriter, RenderedImage image,
ImageWriterParams params) {
JPEGImageWriteParam param = new JPEGImageWriteParam(iiowriter.getLocale());
- //ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(image);
- /*
- ImageTypeSpecifier type = new ImageTypeSpecifier(
- image.getColorModel(), image.getSampleModel());
- */
- /* didn't work as expected...
- ImageTypeSpecifier type = ImageTypeSpecifier.createFromBufferedImageType(
- BufferedImage.TYPE_INT_RGB);
- param.setDestinationType(type);
- param.setSourceBands(new int[] {0, 1, 2});
- */
+ param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
+ param.setCompressionQuality(params.getJPEGQuality());
+ if (params.getCompressionMethod() != null
+ && !"JPEG".equals(params.getCompressionMethod())) {
+ throw new IllegalArgumentException(
+ "No compression method other than JPEG is supported for JPEG output!");
+ }
+ if (params.getJPEGForceBaseline()) {
+ param.setProgressiveMode(JPEGImageWriteParam.MODE_DISABLED);
+ }
return param;
}
-
-
+
+
}
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/ext/awt/image/spi/ImageWriterParams.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/ext/awt/image/spi/ImageWriterParams.java?rev=1068104&r1=1068103&r2=1068104&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/ext/awt/image/spi/ImageWriterParams.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/ext/awt/image/spi/ImageWriterParams.java Mon Feb 7 20:29:48 2011
@@ -25,12 +25,12 @@ package org.apache.batik.ext.awt.image.s
* @version $Id$
*/
public class ImageWriterParams {
-
+
private Integer resolution;
private Float jpegQuality;
private Boolean jpegForceBaseline;
private String compressionMethod;
-
+
/**
* Default constructor.
*/
@@ -44,28 +44,28 @@ public class ImageWriterParams {
public Integer getResolution() {
return this.resolution;
}
-
+
/**
- * @return the quality value for encoding a JPEG image
+ * @return the quality value for encoding a JPEG image
* (0.0-1.0), or null if undefined
*/
public Float getJPEGQuality() {
return this.jpegQuality;
}
-
+
/**
- * @return true if the baseline quantization table is forced,
+ * @return true if the baseline quantization table is forced,
* or null if undefined.
*/
public Boolean getJPEGForceBaseline() {
return this.jpegForceBaseline;
}
-
+
/** @return the compression method for encoding the image */
public String getCompressionMethod() {
return this.compressionMethod;
}
-
+
/**
* Sets the target resolution of the bitmap image to be written.
* @param dpi the resolution in dpi
@@ -73,7 +73,7 @@ public class ImageWriterParams {
public void setResolution(int dpi) {
this.resolution = new Integer(dpi);
}
-
+
/**
* Sets the quality setting for encoding JPEG images.
* @param quality the quality setting (0.0-1.0)
@@ -81,9 +81,9 @@ public class ImageWriterParams {
*/
public void setJPEGQuality(float quality, boolean forceBaseline) {
this.jpegQuality = new Float(quality);
- this.jpegForceBaseline = forceBaseline?Boolean.TRUE:Boolean.FALSE;
+ this.jpegForceBaseline = forceBaseline ? Boolean.TRUE : Boolean.FALSE;
}
-
+
/**
* Set the compression method that shall be used to encode the image.
* @param method the compression method