diff -r dec0dd934a64 -r 93fa6ce675e5 java/copy-image-resizer/src/cz/frantovo/copyImageResizer/RecursiveImageResizer.java --- a/java/copy-image-resizer/src/cz/frantovo/copyImageResizer/RecursiveImageResizer.java Mon Nov 17 20:23:58 2014 +0100 +++ b/java/copy-image-resizer/src/cz/frantovo/copyImageResizer/RecursiveImageResizer.java Mon Nov 17 20:38:38 2014 +0100 @@ -18,18 +18,15 @@ package cz.frantovo.copyImageResizer; import cz.frantovo.copyImageResizer.SingleImageResizer.ImageFormat; -import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; -import java.io.InputStream; import java.nio.channels.FileChannel; import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; -import javax.imageio.ImageIO; /** * @@ -70,16 +67,16 @@ File sizeRoot = new File(options.getOutput(), size.getDirectory()); File outputFile = new File(sizeRoot, inputFileRelative.getPath()); try (FileInputStream input = new FileInputStream(inputFile)) { - BufferedImage image = readImage(input); - if (shouldResize(image, size)) { - try (FileOutputStream output = new FileOutputStream(outputFile)) { - resizer.resize(image, output, size, format); + + try (FileOutputStream output = new FileOutputStream(outputFile)) { + boolean wasResized = resizer.resize(input, output, size, format); + if (wasResized) { counters.increment(Counters.COUNTER_TYPE.RESIZED); + } else { + log.log(Level.FINER, "File: {0} has already required (or smaller) size → just copy", inputFileRelative); + justCopy(inputFile, outputFile); + counters.increment(Counters.COUNTER_TYPE.JUST_COPIED); } - } else { - log.log(Level.FINER, "File: {0} has already required (or smaller) size → just copy", inputFileRelative); - justCopy(inputFile, outputFile); - counters.increment(Counters.COUNTER_TYPE.JUST_COPIED); } } } @@ -91,22 +88,6 @@ } } - private static boolean shouldResize(BufferedImage input, SizeSpecification requested) { - if (requested.isResizeSmaller()) { - return input.getHeight() != requested.getHeight() || input.getWidth() != requested.getWidth(); - } else { - return input.getHeight() > requested.getHeight() || input.getWidth() > requested.getWidth(); - } - } - - private static BufferedImage readImage(InputStream input) throws ResizeException { - try { - return ImageIO.read(input); - } catch (IOException e) { - throw new ResizeException("Unable to read image from stream", e); - } - } - private static void justCopy(File inputFile, File outputFile) throws ResizeException { try {