首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BufferedImage.getScaledInstance()不调整图像大小

BufferedImage.getScaledInstance()不调整图像大小
EN

Stack Overflow用户
提问于 2017-05-02 08:04:38
回答 1查看 1.2K关注 0票数 1

我在理解这一行代码时遇到了一些问题:

代码语言:javascript
运行
复制
bufferedImage.getScaledInstance(100, -1, Image.SCALE_SMOOTH);

我用它来调整图像的大小,用下面的数字。宽度:3264,高度:2448,水平和垂直分辨率:150 size,尺寸: 2.72MB。

然后使用以下方法将bufferedImage保存到文件中

代码语言:javascript
运行
复制
ImageIO.write(bufferedImage, "jpg", outputFile);

它产生了一幅具有以下数字的图片:相同的宽度和高度(3264x2448),水平和垂直分辨率:96 the,大小:674 in。

图片是不是应该是100px的宽度,以及保持高宽比的任何高度(根据Javadoc)?为什么结果图片有相同的宽度和高度,但不同的颜色和分辨率,大小?我是不是遗漏了什么,因为不管宽度和高度有多大,结果图总是和上面描述的一样。

我还读到应该将调整大小的BufferedImage绘制成Graphics2D,并将Graphics2D保存到文件中。这是正确的方法吗,而不是直接将BufferedImage保存到文件中?

我使用的图像是这里

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-03 02:02:41

您没有得到.getScaledInstance()的响应。它不修改bufferedImage,而是返回缩放的映像实例。由于使用了"jpg“,您可能会得到输出图像的分辨率变化。

所以你必须做以下几件事

代码语言:javascript
运行
复制
Image scaledImage = bufferedImage.getScaledInstance(100, -1, Image.SCALE_SMOOTH);
// map Image to BufferedImage
ImageIO.write(scaledBufferedImage, "jpg", outputFile);

若要从缩放的BufferedImage创建Image,请使用以下回答

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

https://stackoverflow.com/questions/43733011

复制
相关文章

相似问题

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