B
Ben Phillips
My code does essentially this:
File inFile = new File("C:\\path\\to\\a\\jpeg\\file.jpg");
File outFile = new File("C:\\path\\to\\a\\jpeg\\fileNew.jpg");
ImageReader reader =
ImageIO.getImageReadersByMIMEType("image/jpeg").next();
reader.setInput(ImageIO.createImageInputStream(inFile));
BufferedImage image = reader.read(0);
AffineTransform scaleTransform = new AffineTransform();
scaleTransform.scale(0.1, 0.1);
AffineTransformOp scaleOp = new AffineTransformOp(scaleTransform,
AffineTransformOp.TYPE_BICUBIC);
BufferedImage result = scaleOp.filter(image, null);
ImageIO.write(result, "jpeg", outFile);
The output file is generated, and has the appropriate dimensions, but it
has turned blue! It looks like the red and green channels are somehow
getting dropped.
What gives?
File inFile = new File("C:\\path\\to\\a\\jpeg\\file.jpg");
File outFile = new File("C:\\path\\to\\a\\jpeg\\fileNew.jpg");
ImageReader reader =
ImageIO.getImageReadersByMIMEType("image/jpeg").next();
reader.setInput(ImageIO.createImageInputStream(inFile));
BufferedImage image = reader.read(0);
AffineTransform scaleTransform = new AffineTransform();
scaleTransform.scale(0.1, 0.1);
AffineTransformOp scaleOp = new AffineTransformOp(scaleTransform,
AffineTransformOp.TYPE_BICUBIC);
BufferedImage result = scaleOp.filter(image, null);
ImageIO.write(result, "jpeg", outFile);
The output file is generated, and has the appropriate dimensions, but it
has turned blue! It looks like the red and green channels are somehow
getting dropped.
What gives?