首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java BufferedImage旋转

Java BufferedImage旋转
EN

Stack Overflow用户
提问于 2017-07-29 05:26:51
回答 1查看 77关注 0票数 0

我需要旋转一个jpg图像,所以我写了这个函数:

代码语言:javascript
复制
BufferedImage rotate(BufferedImage bufferedImage) {
    AffineTransform tx = new AffineTransform();
    tx.rotate(Math.PI/2.0, bufferedImage.getWidth() / 2, bufferedImage.getHeight() / 2);

    AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
    return op.filter(bufferedImage, null);
}

我使用ImageIO从文件中读取和写入图像:

代码语言:javascript
复制
String [] photos = { "IMG_1998.JPG" , "IMG_1999.JPG" ,"IMG_2001.JPG" ,"IMG_2002.JPG" ,"IMG_2003.JPG"};

for(int i=0; i<photos.length-1; i++) {
     BufferedImage nextImage = rotate(ImageIO.read(new File("d:/gif/" + photos[i])));
     ImageIO.write(nextImage, "JPG", new File("d:/gif/A_" + photos[i]));
}

然而,当我查看输出图像文件时,它们都显示为负片。(我希望我可以在这里附上图片)有人能指出我哪里做错了吗?

谢谢,

亚历克斯

EN

回答 1

Stack Overflow用户

发布于 2017-08-11 04:12:19

像@haraldk的注释一样,将结果图像传递给AffineTransformOp.filter函数,而不是使用null。请阅读@haraldk的评论以获得解释。

致以问候。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45382667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档