diff -r b329573c76d7 -r 8e9983260624 java/copy-image-resizer/src/cz/frantovo/copyImageResizer/SingleImageResizer.java --- a/java/copy-image-resizer/src/cz/frantovo/copyImageResizer/SingleImageResizer.java Mon Nov 17 01:17:02 2014 +0100 +++ b/java/copy-image-resizer/src/cz/frantovo/copyImageResizer/SingleImageResizer.java Mon Nov 17 17:02:48 2014 +0100 @@ -20,8 +20,9 @@ import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; +import java.util.logging.Level; +import java.util.logging.Logger; import java.util.regex.Pattern; import javax.imageio.ImageIO; @@ -31,10 +32,11 @@ */ public class SingleImageResizer { - public void resize(InputStream input, OutputStream output, ImageFormat outputFormat) throws ResizeException { + private static final Logger log = Logger.getLogger(SingleImageResizer.class.getName()); + + public void resize(BufferedImage input, OutputStream output, SizeSpecification size, ImageFormat outputFormat) throws ResizeException { try { - BufferedImage image = ImageIO.read(input); - BufferedImage resized = resize(image, 64, 64, image.getType()); + BufferedImage resized = resize(input, size.getWidth(), size.getHeight(), input.getType()); ImageIO.write(resized, outputFormat.getFormat(), output); } catch (IOException e) { @@ -56,6 +58,11 @@ height = maxHeight; } + if (type == BufferedImage.TYPE_CUSTOM) { + log.log(Level.FINE, "Setting default image type: from TYPE_CUSTOM to TYPE_INT_ARGB"); + type = BufferedImage.TYPE_INT_ARGB; + } + BufferedImage resized = new BufferedImage(width, height, type); Graphics2D g = resized.createGraphics(); g.drawImage(original, 0, 0, width, height, null); @@ -78,6 +85,9 @@ this.regex = regex; } + /** + * @return format name for {@linkplain ImageIO#write(java.awt.image.RenderedImage, java.lang.String, java.io.File) + */ public String getFormat() { return format; }