以下两种代码用于加载图像文件:
A)
File sourceimage = new File("filename");
Image image = ImageIO.read(sourceimage);
B)
Toolkit tk = Toolkit.getDeafaultToolkit();
img=tk.getImage("filename");
这两个代码的真正区别是什么?
ImageIO.read(File)
采用File
,并且比采用filename
的Toolkit.getImage(String)
更新(并且作为语言的一部分的时间更长)。此外,第一个提供了额外的功能(也就是说,ImageIO.read(File)
javadoc部分地说)
getUseCache
和getCacheDirectory
的当前缓存设置将用于控制创建的ImageInputStream
中的缓存。请注意,没有将文件名作为字符串的读取方法;在根据文件名创建
File
之后,请改用此方法。
两者之间的主要区别可能是Toolkit.getImage
返回java.awt.Image
,而ImageIO.read
返回java.awt.image.BufferedImage
(它是java.awt.Image
的子类)。
Image
对象是一种相当抽象的图像表示,除了传递到各种Graphics.drawImage
方法之外,您无法对其进行太多处理,而BufferedImage
包含完整的图像数据,因此您可以检查各个像素,修改它们,例如,还可以将图像保存(到新文件和/或新文件格式)。