Эти два вида кода ниже используются для загрузки файла изображения:
A)
File sourceimage = new File("filename");
Image image = ImageIO.read(sourceimage);
B)
Toolkit tk = Toolkit.getDeafaultToolkit();
img=tk.getImage("filename");
Какая реальная разница между этими двумя кодами?
ImageIO.read(File)
принимает File
и является новее, чем Toolkit.getImage(String)
который принимает filename
(и был частью языка более длинным). Кроме того, первый из них обеспечивает дополнительную функциональность (то есть, например, ImageIO.read(File)
javadoc для ImageIO.read(File)
)
Текущие настройки кеша из
getUseCache
иgetCacheDirectory
будут использоваться для управления кэшированием вImageInputStream
.Обратите внимание, что нет метода чтения, который принимает имя файла как String; используйте этот метод вместо создания
File
из имени файла.
Возможно, основное различие между ними заключается в том, что Toolkit.getImage
возвращает java.awt.Image
, а ImageIO.read
возвращает java.awt.image.BufferedImage
(который является подклассом java.awt.Image
).
Объект Image
представляет собой довольно абстрактное представление изображения, которое вы не можете сделать очень сильно, помимо прохода к различным методам Graphics.drawImage
, в то время как BufferedImage
содержит полные данные изображения, чтобы вы могли проверять отдельные пиксели, изменять их, а также, например, сохранить изображение (в новый файл и/или новый формат файла).