尝试调整图像大小后获得黑屏

时间:2012-07-05 17:39:30

标签: java bufferedimage

我目前正在尝试调整我从网上下载并将其放入JPanel的图片。 首先,我使用以下代码从网上下载图像:

public static Image MSImageHigh(){
    URL imageUrl = null;
    try {
        imageUrl = new URL("http://www.hmdb.ca/labm/metabolites/" 
        + HMDB + "/ms/spectraH/" + HMDB + "H.png");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }

    Image image = Toolkit.getDefaultToolkit().createImage(imageUrl);
    return image;
}

然后我制作了一个调整图像大小的新方法:

public static BufferedImage resizeImage() {
    final BufferedImage bufferedImage = new BufferedImage(300, 500,BufferedImage.TYPE_INT_RGB);
    final Graphics2D graphics2D = bufferedImage.createGraphics();

    graphics2D.setComposite(AlphaComposite.Src);
    graphics2D.drawImage(MSImageHigh(), 0, 0, 200, 200, null);
    graphics2D.dispose();

    return bufferedImage;
}

这应该会生成一个大小调整为200x200像素的新图像。它实际上做的是给我一个200x200px大小的黑屏。顺便说一句,我也尝试使用TYPE_INT_ARGB而不是TYPE_INT_RGB,这会产生一个完全透明的图像,因此也无法正常工作。

1 个答案:

答案 0 :(得分:0)

我使用ImageIO.read(imageUrl)代替Toolkit.getDefaultToolkit().createImage(imageUrl),这解决了问题。谢谢@Hovercraft充满鳗鱼!