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