我可以在Java中更改jpg图像的分辨率吗?

我可以在Java中更改jpg图像的分辨率吗?,java,jpeg,image-resizing,Java,Jpeg,Image Resizing,我有一些.jpg,我正在面板中显示。不幸的是,它们都是1500x1125像素,这对我来说太大了。是否有一种编程方式来更改这些.jpg的分辨率?将其加载为图像图标,这样就可以实现以下功能: import java.awt.Graphics2D; import java.awt.image.BufferedImage; import javax.swing.ImageIcon; public static ImageIcon resizeImageIcon( ImageIcon imageIcon

我有一些.jpg,我正在面板中显示。不幸的是,它们都是1500x1125像素,这对我来说太大了。是否有一种编程方式来更改这些.jpg的分辨率?

将其加载为图像图标,这样就可以实现以下功能:

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;

public static ImageIcon resizeImageIcon( ImageIcon imageIcon , Integer width , Integer height )
{
    BufferedImage bufferedImage = new BufferedImage( width , height , BufferedImage.TRANSLUCENT );

    Graphics2D graphics2D = bufferedImage.createGraphics();
    graphics2D.drawImage( imageIcon.getImage() , 0 , 0 , width , height , null );
    graphics2D.dispose();

    return new ImageIcon( bufferedImage , imageIcon.getDescription() );
}
您可以尝试:

private BufferedImage getScaledImage(Image srcImg, int w, int h) {
    BufferedImage resizedImg = new BufferedImage(w, h, Transparency.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;
}                         

您可以使用
Graphics2D
方法(从
java.awt
)缩放图像。这就对它进行了深入的解释。

看看这个@Tom,效果很好,非常感谢!做一个答案,你就得到了一个复选标记。哦,老兄,我本来打算把tom作为答案,但我已经在使用ImageIcon了,所以这可能是我需要的更多。等待未来激动人心的更新!我在这一行得到一个“错误:找不到符号”,BuffereImage BuffereImage=new BuffereImage(宽度、高度、BuffereImage.Transparent);它指向构建输出窗口中的BuffereImage部分。我不确定,它在我的上编译得很好。你在用什么IDE?JCreator LE。我是否缺少一些重要信息?我将这些重要信息添加到了答案中。