From: <mol...@us...> - 2010-12-27 15:07:04
|
Revision: 3190 http://openutils.svn.sourceforge.net/openutils/?rev=3190&view=rev Author: molaschi Date: 2010-12-27 15:06:57 +0000 (Mon, 27 Dec 2010) Log Message: ----------- MEDIA-196 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 2010-12-18 16:48:58 UTC (rev 3189) +++ trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtils.java 2010-12-27 15:06:57 UTC (rev 3190) @@ -377,18 +377,14 @@ public static void saveResolution(BufferedImage image, Content saveTo, String name, String outputformat, float quality, boolean forceProgressive) throws RepositoryException, IOException { + final File tempFile = getTempFile(image, outputformat, quality, forceProgressive); InputStream stream = null; try { - stream = getStream(image, outputformat, quality, forceProgressive); + stream = new BufferedInputStream(new FileInputStream(tempFile)); - if (stream == null) - { - throw new IllegalArgumentException("Stream is null"); - } - Content resolutions = getResolutionsNode(saveTo); if (resolutions == null) { @@ -428,17 +424,17 @@ nd.setAttribute(FileProperties.PROPERTY_EXTENSION, outputformat); nd.setAttribute(FileProperties.PROPERTY_FILENAME, saveTo.getName()); nd.setAttribute(FileProperties.PROPERTY_CONTENTTYPE, mimetype); - nd.setAttribute( - FileProperties.PROPERTY_LASTMODIFIED, - GregorianCalendar.getInstance(TimeZone.getDefault())); + nd.setAttribute(FileProperties.PROPERTY_LASTMODIFIED, GregorianCalendar.getInstance(TimeZone + .getDefault())); nd.setAttribute(FileProperties.PROPERTY_WIDTH, "" + image.getWidth()); nd.setAttribute(FileProperties.PROPERTY_HEIGHT, "" + image.getHeight()); - + nd.setAttribute(FileProperties.PROPERTY_SIZE, "" + tempFile.length()); } } finally { IOUtils.closeQuietly(stream); + tempFile.delete(); } } @@ -459,15 +455,15 @@ } /** - * Get an inputstream for an image and the target file extension + * Get a temporary file for an image and the target file extension * @param image image to get the inputstream from * @param extension target file extension * @param quality image quality * @param forceProgressive true if image has to be saved as progressive mode - * @return inputstream + * @return temporary file * @throws IOException */ - public static InputStream getStream(BufferedImage image, String extension, float quality, boolean forceProgressive) + public static File getTempFile(BufferedImage image, String extension, float quality, boolean forceProgressive) throws IOException { @@ -580,20 +576,7 @@ out.flush(); IOUtils.closeQuietly(out); - return new BufferedInputStream(new FileInputStream(tempFile) - { - - /** - * {@inheritDoc} - */ - @Override - public void close() throws IOException - { - tempFile.delete(); - super.close(); - } - - }); + return tempFile; } /** @@ -896,10 +879,11 @@ if (ImageProcessorsManager.getInstance().isValidControlChar(controlChar)) { - img = ImageProcessorsManager - .getInstance() - .getImageResolutionProcessor(controlChar) - .getImageForResolution(original, size.x, size.y, params); + img = ImageProcessorsManager.getInstance().getImageResolutionProcessor(controlChar).getImageForResolution( + original, + size.x, + size.y, + params); } else if (controlChar < '0' || controlChar > '9') { @@ -907,10 +891,11 @@ } else { - img = ImageProcessorsManager - .getInstance() - .getDefaultImageResolutionProcessor() - .getImageForResolution(original, size.x, size.y, params); + img = ImageProcessorsManager.getInstance().getDefaultImageResolutionProcessor().getImageForResolution( + original, + size.x, + size.y, + params); } for (ImagePostProcessor ipp : ImageProcessorsManager.getInstance().getImagePostProcessorsList()) 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 2010-12-18 16:48:58 UTC (rev 3189) +++ trunk/openutils-mgnlmedia/src/test/java/net/sourceforge/openutils/mgnlmedia/media/utils/ImageUtilsTest.java 2010-12-27 15:06:57 UTC (rev 3190) @@ -23,17 +23,13 @@ import info.magnolia.cms.util.FactoryUtil; import java.awt.image.BufferedImage; -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; import net.sourceforge.openutils.mgnlmedia.media.configuration.ImageProcessorsManager; -import org.apache.commons.io.IOUtils; +import org.apache.commons.io.FileUtils; import org.testng.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -75,16 +71,13 @@ bufferedImage = ImageUtils.resizeImage(bufferedImage, 100, 100); - InputStream is = ImageUtils.getStream(bufferedImage, "jpg", 1.0F, false); + File originalTempFile = ImageUtils.getTempFile(bufferedImage, "jpg", 1.0F, false); - File tempFile = File.createTempFile("image", ".jpg"); - OutputStream os = new BufferedOutputStream(new FileOutputStream(tempFile)); - IOUtils.copy(is, os); + File tempFile = File.createTempFile("image", ".gif"); + FileUtils.copyFile(originalTempFile, tempFile); - IOUtils.closeQuietly(is); - IOUtils.closeQuietly(os); - tempFile.delete(); + originalTempFile.delete(); } @@ -102,16 +95,13 @@ bufferedImage = ImageUtils.resizeImage(bufferedImage, 100, 100); - InputStream is = ImageUtils.getStream(bufferedImage, "jpg", 1.0F, false); + File originalTempFile = ImageUtils.getTempFile(bufferedImage, "jpg", 1.0F, false); - File tempFile = File.createTempFile("image", ".jpg"); - OutputStream os = new BufferedOutputStream(new FileOutputStream(tempFile)); - IOUtils.copy(is, os); + File tempFile = File.createTempFile("image", ".gif"); + FileUtils.copyFile(originalTempFile, tempFile); - IOUtils.closeQuietly(is); - IOUtils.closeQuietly(os); - tempFile.delete(); + originalTempFile.delete(); } @@ -130,16 +120,13 @@ parameters.put("background", "FF0096"); bufferedImage = ImageUtils.getImageForResolution(bufferedImage, "O300x300;background=FF0096", parameters); - InputStream is = ImageUtils.getStream(bufferedImage, "png", 1.0F, false); + File originalTempFile = ImageUtils.getTempFile(bufferedImage, "png", 1.0F, false); - File tempFile = File.createTempFile("image", ".png"); - OutputStream os = new BufferedOutputStream(new FileOutputStream(tempFile)); - IOUtils.copy(is, os); + File tempFile = File.createTempFile("image", ".gif"); + FileUtils.copyFile(originalTempFile, tempFile); - IOUtils.closeQuietly(is); - IOUtils.closeQuietly(os); - tempFile.delete(); + originalTempFile.delete(); } @@ -193,16 +180,13 @@ bufferedImage = ImageUtils.resizeImage(bufferedImage, 1, 1); - InputStream is = ImageUtils.getStream(bufferedImage, "gif", 0.8F, false); + File originalTempFile = ImageUtils.getTempFile(bufferedImage, "gif", 0.8F, false); File tempFile = File.createTempFile("image", ".gif"); - OutputStream os = new BufferedOutputStream(new FileOutputStream(tempFile)); - IOUtils.copy(is, os); + FileUtils.copyFile(originalTempFile, tempFile); - IOUtils.closeQuietly(is); - IOUtils.closeQuietly(os); - tempFile.delete(); + originalTempFile.delete(); } /** @@ -220,15 +204,12 @@ bufferedImage = ImageUtils.resizeImage(bufferedImage, 200, 200); - InputStream is = ImageUtils.getStream(bufferedImage, "gif", 0.8F, false); + File originalTempFile = ImageUtils.getTempFile(bufferedImage, "gif", 0.8F, false); File tempFile = File.createTempFile("image", ".gif"); - OutputStream os = new BufferedOutputStream(new FileOutputStream(tempFile)); - IOUtils.copy(is, os); + FileUtils.copyFile(originalTempFile, tempFile); - IOUtils.closeQuietly(is); - IOUtils.closeQuietly(os); - tempFile.delete(); + originalTempFile.delete(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |