Java:调整图像大小不起作用

时间:2015-12-19 10:08:32

标签: java resize

我不知道为什么这种方法无法调整图像大小。没有错误发生(如果有,我有一个例外):

   private static void resizeImage(int width, int height) {
        try {
            BufferedImage rawImg = ImageIO.read(new File("%imgg%.png"));
            int gamlaWidth = rawImg.getWidth();
            int gamlaHeight = rawImg.getHeight();
            BufferedImage dimg = new BufferedImage(width, height, rawImg.getType());
            Graphics2D g = rawImg.createGraphics();
            g.drawImage(rawImg, 0, 0, 114, 114, null);
            g.dispose();  
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Ett fel uppstod:\n" + e, "Felmeddelande", 0);
        }
    }  

为什么这段代码没有改变什么?我希望尺寸为114x114。

1 个答案:

答案 0 :(得分:1)

您始终可以使用此代码调整图片大小。

NewDocument()

如果您希望图片Image smallerImage = null; ImageIcon smallerImageIcon = null; public void resizeImage(int width, int height, String image) { ImageIcon originalImage = new ImageIcon(image); smallerImage = originalImage.getImage().getScaledInstance(width,height,0); smallerImageIcon = new ImageIcon(smallerImage); } 为114 x 114,请使用此方法,您可以调用此方法

%imgg%.png

使用您的代码我相信问题可能是您将其设置为114 x 114,因为该大小与缩放后的大小不同。

尝试

resizeImage(114, 114, "%imgg%.png");

使用

BufferedImage createResizedCopy(Image originalImage, int scaledWidth, int scaledHeight, boolean preserveAlpha)
{
    System.out.println("resizing...");
    int imageType = preserveAlpha ? BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB;
    BufferedImage scaledBI = new BufferedImage(scaledWidth, scaledHeight, imageType);
    Graphics2D g = scaledBI.createGraphics();
    if (preserveAlpha) {
        g.setComposite(AlphaComposite.Src);
    }
    g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null); 
    g.dispose();
    return scaledBI;
}

请参阅here