我只是想将JPG文件旋转90度。但是,我的代码输出完全黑色的图像(BufferedImage
)。带有AffineTransform的Java图像旋转输出黑色图像,但在调整大小时效果不错
这里重现的方式:(下载3.JPG here)
private static BufferedImage transform(BufferedImage originalImage) {
BufferedImage newImage = null;
AffineTransform tx = new AffineTransform();
tx.rotate(Math.PI/2, originalImage.getWidth()/2, originalImage.getHeight()/2);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BICUBIC);
newImage = op.filter(originalImage, newImage);
return newImage;
}
public static void main(String[] args) throws Exception {
BufferedImage bi = transform(ImageIO.read(new File(
"3.jpg")));
ImageIO.write(bi, "jpg", new File("out.jpg"));
}
这里有什么错?
(如果我给这个黑色输出BufferedImage
的图像缩放库,它就会调整好了,原始图像仍然存在。)