public BufferedImage scaleImage(int maxWidth, int maxHeight, InputStream imageStream) throws IOException { final ImageInputStream imageInputStream = ThumbnailUtil.getImageInputStream(imageStream); try { return scaleImage(maxWidth, maxHeight, imageInputStream); } finally { imageInputStream.close(); } }
public static ThumbnailDimension dimensionsForImage(final @Nonnull InputStream inputStream) throws IOException { final BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); try { final ImageInputStream imageInputStream = getImageInputStream(inputStream); try { final Optional<ImageReader> imageReader = getFirstImageReader(imageInputStream); if (!imageReader.isPresent()) { throw new IOException("There is no ImageReader available for the given ImageInputStream"); } // Use the first one available final ImageReader reader = imageReader.get(); try { reader.setInput(imageInputStream); return new ThumbnailDimension(reader.getWidth(0), reader.getHeight(0)); } finally { reader.dispose(); } } finally { imageInputStream.close(); } } finally { IOUtils.closeQuietly(bufferedInputStream); } }