public static BufferedImage transformImage(BufferedImage image, AffineTransform transform) throws Exception { AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BICUBIC); BufferedImage destinationImage = op.createCompatibleDestImage(image, (image.getType() == BufferedImage.TYPE_BYTE_GRAY) ? image.getColorModel() : null ); Graphics2D g = destinationImage.createGraphics(); g.setBackground(Color.WHITE); g.clearRect(0, 0, destinationImage.getWidth(), destinationImage.getHeight()); destinationImage = op.filter(image, destinationImage); return destinationImage; }
@Override public BufferedImage createCompatibleDestImage(final BufferedImage src, final ColorModel destCM) { return delegate.createCompatibleDestImage(src, destCM); }
@Override public BufferedImage createCompatibleDestImage(final BufferedImage src, final ColorModel destCM) { return delegate.createCompatibleDestImage(src, destCM); }
AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BICUBIC); BufferedImage destinationImage = op.createCompatibleDestImage(image, null ); destinationImage = op.filter(image, null); return destinationImage;
BufferedImage transformedImage = operation.createCompatibleDestImage(image, image.getColorModel()); return operation.filter(image, transformedImage);
try (ImageInputStream inputStream = new FileImageInputStream(new File("Landscape_3.jpg"))) { Iterator<ImageReader> readerIterator = ImageIO.getImageReaders(inputStream); ImageReader reader = readerIterator.next(); reader.setInput(inputStream); Iterator<IIOImage> imageIterator = reader.readAll(null); IIOImage image = imageIterator.next(); BufferedImage srcImage = (BufferedImage) image.getRenderedImage(); AffineTransformOp scaleOp = new AffineTransformOp(AffineTransform.getScaleInstance(0.5, 0.5), AffineTransformOp.TYPE_NEAREST_NEIGHBOR); BufferedImage resultImage = scaleOp.createCompatibleDestImage(srcImage, null); resultImage = scaleOp.filter(srcImage, resultImage); image.setRenderedImage(resultImage); ImageWriter writer = ImageIO.getImageWriter(reader); try (ImageOutputStream outputStream = new FileImageOutputStream(new File("Landscape_3_preserve_exif.jpg"))) { writer.setOutput(outputStream); writer.write(image); } try (ImageOutputStream outputStream = new FileImageOutputStream(new File("Landscape_3_discard_exif.jpg"))) { writer.setOutput(outputStream); writer.write(image.getRenderedImage()); } }
BufferedImage scaledImage = ato.createCompatibleDestImage(image, image.getColorModel()); ato.filter(image, scaledImage);
scaledImage = ato.createCompatibleDestImage(img, img.getColorModel()); img = ato.filter(img, scaledImage);