java - 如何缩放 BufferedImage

标签 java swing bufferedimage

我查看了this question ,但它似乎并没有真正回答我的问题。我有一个图像文件,可以是任何分辨率。我需要将该图像加载到特定分辨率的 BufferedImage 对象中(例如,对于本例,800x800)。我知道 Image 类可以使用 getScaledInstance() 将图像缩放到新的大小,但我无法弄清楚如何将其恢复为 BufferedImage。有没有一种简单的方法可以将缓冲图像缩放到特定大小?

注意我不想按特定因素缩放图像,我想拍摄图像并制作特定尺寸。

最佳答案

是这样的吗? :

 /**
 * Resizes an image using a Graphics2D object backed by a BufferedImage.
 * @param srcImg - source image to scale
 * @param w - desired width
 * @param h - desired height
 * @return - the new resized image
 */
private BufferedImage getScaledImage(Image srcImg, int w, int h){
    BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TRANSLUCENT);
    Graphics2D g2 = resizedImg.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g2.drawImage(srcImg, 0, 0, w, h, null);
    g2.dispose();
    return resizedImg;
}

关于java - 如何缩放 BufferedImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11367324/

相关文章:

java - 在java中显示来自二维数组数据的图像

java - BufferedImage 的 Changellistener

java - Android:抓取应用程序元数据

java - Apache Tiles 与 JSP 和 Servlet webapp 集成

java - JComboBox 问题

swing - Clojure 代理 : rate limiting?

java - 设置字段的自定义反射方法

java - 循环模块依赖在 Java 9 中是否可行?

java - 如何在具有多个类的数组中转换对象?

java - 鼠标监听器界面和绘画