如何在Java中将图像转换为BuffereImage?
如何在Java中转换为 请注意,这显然是不正确的,因为它使用方法和,如果尚未加载映像,则可以返回如何在Java中将图像转换为BuffereImage?,java,image,swing,awt,Java,Image,Swing,Awt,如何在Java中转换为 请注意,这显然是不正确的,因为它使用方法和,如果尚未加载映像,则可以返回-1(image根据定义是一个异步对象) 请提供更多正确的答案,或者提供更多现有答案已经正确的证据。如果这对您很重要,您可以使用MediaTracker来“等待”图像加载,那么您不需要关心提供ImageObserver try { MediaTracker mt = new MediaTracker(new JPanel()); Image image = Toolkit.getDef
-1
(image
根据定义是一个异步对象)
请提供更多正确的答案,或者提供更多现有答案已经正确的证据。如果这对您很重要,您可以使用
MediaTracker
来“等待”图像加载,那么您不需要关心提供ImageObserver
try {
MediaTracker mt = new MediaTracker(new JPanel());
Image image = Toolkit.getDefaultToolkit().createImage("...");
mt.addImage(image, 0);
System.out.println("Wait for...");
mt.waitForAll();
System.out.println("I be loaded");
BufferedImage bi = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = bi.createGraphics();
g2d.drawImage(image, 0, 0, null);
g2d.dispose();
} catch (InterruptedException ex) {
ex.printStackTrace();
}
请查看以了解更多详细信息
我不想添加任何GUI,我只需要下载图像,否则会失败
好的,如果您“需要下载”图像,那么您可以使用
ImageIO.read(URL)
,查看更多详细信息。。。这样您就不需要关心图像
或MediaTracker
,因为ImageIO
返回一个BuffereImage,您需要创建一个空的BuffereImage来将像素复制到其中。因此,您需要原始图像的尺寸。在加载之前,我无法知道原始图像的尺寸。哦,天哪,我尝试将两个图像转换为BuffereImage,但我真的快要发火了,因为我不明白为什么一个会转换,另一个不会:)我以前必须作为setIcon和在更改之前,将我的JButton设置为rollovericon,这样做的技巧非常感谢:)在MediaTracker
的构造函数中组件的用途是什么?我不想添加任何GUI,我只需要下载图像或失败组件
正在充当MediaTracker
的ImageObserver
。好的,如果您“需要下载”图像,那么您可以使用ImageIO.read(URL)
,查看更多详细信息。。。然后你就不需要关心Image
或MediaTracker
,因为ImageIO
返回一个buffereImage
我没有URL,我在Image
实例表单中有一个图像,然后你需要MediaTracker
,创建组件不会“启动”任何UI,它只是用来简化ImageObserver
API要求