From: <fg...@us...> - 2011-07-01 15:08:00
|
Revision: 3566 http://openutils.svn.sourceforge.net/openutils/?rev=3566&view=rev Author: fgiust Date: 2011-07-01 15:07:53 +0000 (Fri, 01 Jul 2011) Log Message: ----------- update tests Modified Paths: -------------- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java trunk/openutils-mgnlmedia/src/test/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtilsTest.java Modified: trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java =================================================================== --- trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java 2011-06-30 12:28:09 UTC (rev 3565) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java 2011-07-01 15:07:53 UTC (rev 3566) @@ -34,6 +34,7 @@ import java.awt.Point; import java.awt.RenderingHints; import java.awt.Transparency; +import java.awt.color.CMMException; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; @@ -583,11 +584,11 @@ * @param extension target file extension * @param quality image quality * @param forceProgressive true if image has to be saved as progressive mode - * @return inputstream + * @return byte count * @throws IOException */ public static long getStream(BufferedImage image, String extension, float quality, boolean forceProgressive, - PipedOutputStream outputstream) throws IOException + OutputStream outputstream) throws IOException { CountBytesBufferedOutputStream out = new CountBytesBufferedOutputStream(outputstream); @@ -1121,6 +1122,25 @@ return result; } + catch (CMMException e) + { + // CMMException is thrown for non-standard jpegs? + // Invalid image format + // java.awt.color.CMMException: Invalid image format + // at sun.awt.color.CMM.checkStatus(CMM.java:131) + // at sun.awt.color.ICC_Transform.<init>(ICC_Transform.java:89) + // at java.awt.image.ColorConvertOp.filter(ColorConvertOp.java:516) + // at com.sun.imageio.plugins.jpeg.JPEGImageReader.acceptPixels(JPEGImageReader.java:1169) + BufferedImage result = JpegUtils.processNonStandardImage(image); + + if (result == null) + { + // throw the original exception back + throw new BadImageFormatException("Unable to handle " + image.getHandle(), e); + } + return result; + + } finally { IOUtils.closeQuietly(is); Modified: trunk/openutils-mgnlmedia/src/test/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtilsTest.java =================================================================== --- trunk/openutils-mgnlmedia/src/test/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtilsTest.java 2011-06-30 12:28:09 UTC (rev 3565) +++ trunk/openutils-mgnlmedia/src/test/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtilsTest.java 2011-07-01 15:07:53 UTC (rev 3566) @@ -26,7 +26,6 @@ import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; -import java.io.InputStream; import java.io.OutputStream; import java.util.HashMap; import java.util.Map; @@ -75,13 +74,11 @@ bufferedImage = ImageUtils.resizeImage(bufferedImage, 100, 100); - InputStream is = ImageUtils.getStream(bufferedImage, "jpg", 1.0F, false); - File tempFile = File.createTempFile("image", ".jpg"); OutputStream os = new BufferedOutputStream(new FileOutputStream(tempFile)); - IOUtils.copy(is, os); - IOUtils.closeQuietly(is); + ImageUtils.getStream(bufferedImage, "jpg", 1.0F, false, os); + IOUtils.closeQuietly(os); tempFile.delete(); @@ -102,13 +99,11 @@ bufferedImage = ImageUtils.resizeImage(bufferedImage, 100, 100); - InputStream is = ImageUtils.getStream(bufferedImage, "jpg", 1.0F, false); - File tempFile = File.createTempFile("image", ".jpg"); OutputStream os = new BufferedOutputStream(new FileOutputStream(tempFile)); - IOUtils.copy(is, os); - IOUtils.closeQuietly(is); + ImageUtils.getStream(bufferedImage, "jpg", 1.0F, false, os); + IOUtils.closeQuietly(os); tempFile.delete(); @@ -130,13 +125,10 @@ parameters.put("background", "FF0096"); bufferedImage = ImageUtils.getImageForResolution(bufferedImage, "O300x300;background=FF0096", parameters); - InputStream is = ImageUtils.getStream(bufferedImage, "png", 1.0F, false); - File tempFile = File.createTempFile("image", ".png"); OutputStream os = new BufferedOutputStream(new FileOutputStream(tempFile)); - IOUtils.copy(is, os); + ImageUtils.getStream(bufferedImage, "png", 1.0F, false, os); - IOUtils.closeQuietly(is); IOUtils.closeQuietly(os); tempFile.delete(); @@ -191,13 +183,11 @@ bufferedImage = ImageUtils.resizeImage(bufferedImage, 1, 1); - InputStream is = ImageUtils.getStream(bufferedImage, "gif", 0.8F, false); - File tempFile = File.createTempFile("image", ".gif"); OutputStream os = new BufferedOutputStream(new FileOutputStream(tempFile)); - IOUtils.copy(is, os); - IOUtils.closeQuietly(is); + ImageUtils.getStream(bufferedImage, "gif", 0.8F, false, os); + IOUtils.closeQuietly(os); tempFile.delete(); @@ -218,13 +208,11 @@ bufferedImage = ImageUtils.resizeImage(bufferedImage, 200, 200); - InputStream is = ImageUtils.getStream(bufferedImage, "gif", 0.8F, false); - File tempFile = File.createTempFile("image", ".gif"); OutputStream os = new BufferedOutputStream(new FileOutputStream(tempFile)); - IOUtils.copy(is, os); - IOUtils.closeQuietly(is); + ImageUtils.getStream(bufferedImage, "gif", 0.8F, false, os); + IOUtils.closeQuietly(os); tempFile.delete(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |