我只是想将JPG文件旋转90度。但是我的代码输出的图像(BufferedImage
)完全是黑色的。
复制方法如下:( 在此处 下载3.jpg )
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
提供给图像缩放器库,则会调整好大小,原始图像仍然存在。)
将新的BufferedImage传递到filter()方法中,而不是让它创建自己的作品(不是完全黑色)。
同样,变换似乎无法正常工作,图像最终在目标中偏移了。我能够通过手动应用必要的转换来解决它,以相反的顺序记录这些工作,并且在目标图像中,width
=旧高度,而height =旧宽度。
AffineTransform tx = new AffineTransform();
// last, width = height and height = width :)
tx.translate(originalImage.getHeight() / 2,originalImage.getWidth() / 2);
tx.rotate(Math.PI / 2);
// first - center image at the origin so rotate works OK
tx.translate(-originalImage.getWidth() / 2,-originalImage.getHeight() / 2);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
// new destination image where height = width and width = height.
BufferedImage newImage =new BufferedImage(originalImage.getHeight(), originalImage.getWidth(), originalImage.getType());
op.filter(originalImage, newImage);
filter()的javadoc声明它将为您创建BufferedImage,我仍然不确定为什么它不起作用,这里肯定有问题。
If the destination image is null, a BufferedImage is created with the source ColorModel.
问题内容: 我上课了。在这个类中,我有一个类型的变量。更重要的是,我有WorldMap重写功能的类: 函数看起来像这样: 它只需要1)旋转飞机(飞机对象内部的BufferedImage)2)画他。 我的Airplane.rotateAirplane()函数如下所示: 我运行我的程序时,ofc仅绘制对象。当我删除此车道时 我也有我的飞机,但是没有旋转。 问题答案: 主要的问题(我可以看到)是上下文的
当使用sharp image resize库https://github.com/lovell/sharp for Node.js时,图像将被旋转。 我没有写.rotate()的代码,那么为什么要旋转它,我怎样才能阻止它旋转呢? 我使用的是AWS提供的无服务器图像大小调整示例:https://github.com/awslabs/serverless-image-resizing。如果缩略图不存在
我有一个尺寸为800x800的图像,其大小为170 kb。我想将此图像调整为600x600。调整大小后,我希望缩小图像大小。我该怎么做?
问题内容: 我在这里使用Go调整大小包:https://github.com/nfnt/resize 我正在从S3中提取图像,如下所示: // this gives me data []byte 之后,我需要调整图像大小: // problem is that the original_image has to be of type image.Image 将图像上传到我的S3存储桶 // pro
问题内容: 我有一个快速的问题,我不太确定要进行设置。我在其他地方看到过示例,但没有什么比我的情况更具体。我想使用PHP调整图像的大小,以使图像易于阅读,而不仅仅是像使用HTML那样随意拉伸。如果它们的宽度不是250像素,也不是160像素,那么如何调整图片的大小,使其成比例但适合该空间? 谢谢! 问题答案: 好的,下面是我在商店中使用的Image对象。保持规模-需要GD 我在请求时调整图像的大
问题内容: 我需要调整PNG,JPEG和GIF文件的大小。如何使用Java做到这一点? 问题答案: 加载图像后,你可以尝试: