Изображение — это изображение, состоящее из группы пикселей и хранящееся в двоичной форме. Язык Java поддерживает три основных формата файлов изображений: GIF, JPEG и BMP. Функция обработки изображений языка Java инкапсулирована в классе Image.
Загрузка и вывод изображения
В программе Java изображения также являются объектами, поэтому при загрузке изображения необходимо сначала объявить объект Image, а затем использовать метод getImage(), чтобы связать объект Image с файлом изображения. Есть два способа загрузки файлов изображений:
Image getImage(URL url), url указывает местоположение и имя файла изображения.
Image getImage(URL url,String name), url указывает местоположение изображения, а name — это имя файла.
Например, следующий код объявляет объект Image и использует объект getImage(), чтобы связать его с файлом изображения:
Изображение img = getImage(getCodeBase(),"family.jpg");
Объект URL (uniform Resource Location Uniform Resource Locator) используется для идентификации имени и адреса ресурса и используется, когда WWW-клиент обращается к ресурсам Интернета. Существует два способа определения положения изображения: абсолютное положение и относительное положение. Методы получения относительных позиций:
URL getCodeBase(), получение местоположения файла апплета.
URL getDocumentBase(), получите расположение HTML-файла.
Например, код:
URL picURLA = новый URL(getDocumentBase(),"imageSample1.gif"), picURLB = новый URL(getDocumentBase(),"pictures/imageSample.gif"); Изображение imageA = getImage(picURLA), imageB = getImage(picURLB);
Методы получения информации об изображении (атрибутах):
getWidth (наблюдатель ImageObserver): получить ширину;
getHeight(наблюдатель ImageObserver): получить высоту.
Код вывода изображений написан в методе Paint(). Существует 4 способа отображения изображений:
логическое drawImage(Image img,int x,int y,ImageObserver Observer) логическое drawImage(Image img,int x,int y,Color bgcolor,ImageObserver Observer) логическое drawImage(Image img,int x,int y,int ширина,int высота ,ImageObsever Observer) логическое значение drawImage(Image img,int x,int y,int ширина, высота int, цвет bgcolor, наблюдатель ImageObsever)
Параметр img — это объект изображения. Если размер изображения отличается, отображаемое изображение будет масштабироваться.
Класс Applet также реализует интерфейс ImageObserver, который часто используется в качестве фактического параметра. См. следующий код и комментарии:
(1) g.drawImage(image1,0,0,this);//Отображение исходного изображения
(2) g.drawImage(image2,10,10,Color.red,this);//Отображение графики и цвета фона. Примечание. Если размер исходного изображения отличается от заданного диапазона, система автоматически масштабирует
(3) g.drawImage(labImag,0,0,this);//Отображение исходного изображения
(4) g.grawImage(labImag,0,120,100,100,this);//масштабирование дисплея
(5) g.grawImage(labImag,0,240,500,100,this);//Увеличить отображение
[Пример] Небольшое приложение использует метод init() или start() для загрузки (получения) изображения и использует метод Paint() для отображения полученного изображения.
import java.applet.*;import java.awt.*;public class example7_5 расширяет Applet{ Image myImag; public void start(){ myImag = getImage(getCodeBase(),"myPic.jpg" } public void Paint(Graphics); g) { g.drawImage(myImg,2,2,this }};Поскольку в таких классах, как Frame, JFrame и JPanel, не предусмотрен метод getImage(), им необходимо использовать абстрактный класс Toolkit в java.awt.Toolkit для загрузки изображений, в котором есть методы для загрузки файлов изображений:
Таким образом, различные компоненты могут использовать метод getToolkit() для получения объекта Toolkit, а затем отображать изображение через объект Toolkit в методе Paint() компонента. Следующий код иллюстрирует такое использование:
Инструментарий Tool = getToolkit(); URL-адрес = новый URL-адрес (http://www.weixueyuan.net/image.gif) Изображение img =tool.getImage(url);
Компоненты также могут использовать статический метод getDefaultToolkit(), предоставляемый Toolkit, для получения объекта Toolkit по умолчанию и использования его для загрузки изображений. В настоящее время код загрузки изображения часто пишут так:
Изображение img = Toolkit.getDefaultToolkit().getImage(url);