0
我正在尝试调整我从网上下载并将其放入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;
}
这将产生SA的新形象,是调整为200x200像素。它实际上做的是给我一个200x200px的黑屏。顺便说一句,我也尝试使用TYPE_INT_ARGB而不是TYPE_INT_RGB,这会产生一个完全透明的图像,所以这也不起作用。
有可能您的图片尚未完成加载。这可以解释为什么没有画画。你可以使用mediatracker来解决这个问题 – ControlAltDel 2012-07-05 17:43:04
如果你使用'ImageIO.read(imageUrl)'而不是'Toolkit.getDefaultToolkit()。createImage(imageUrl);'? – 2012-07-05 18:13:09
@ControlAltDel更好的是,使用'ImageIO.read(URL)'作为阻塞方法。 – 2012-07-05 18:13:14