Иллюстрированный самоучитель по Java

Как выделить фрагмент изображения

В листинге 15.2 выделяется фрагмент изображения и выводится на экран в увеличенном виде. Кроме того, ниже выводятся изображения, увеличенные с помощью классов ReplicateScaleFilter и AreaAveragingScaleFilter.

Листинг 15.2. Примеры масштабирования изображения.

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
class CropTest extends Frame{
private Image img, cropimg, replimg, averimg;
CropTest(String s){ super (s);
// 1. Создаем изображение – объект класса Image
img = getToolkit().getlmage("javalogo52x88.gif");
// 2. Создаем объекты-фильтры:
// а) выделяем левый верхний угол размером 30x30
CropImageFilter crp = new CropImageFilter(0, 0, 30, 30);
// б) увеличиваем изображение в два раза простым методом
RepiicateScaieFiiter rsf = new RepiicateScaieFiiter(104, 176);
// в) увеличиваем изображение в два раза с усреднением
AreaAveragingScaleFilter asf = new AreaAveragingScaleFilter(104, 176);
// 3. Создаем измененные изображения
cropimg = createlmage(new FilteredlmageSource(img.getSource(), crp));
replimg = createlmage(new FilteredlmageSource(img.getSource(), rsf)};
averimg = createlmage(new FilteredlmageSource(img.getSource(), asf));
setSize(400, 350); setvisible(true); }
public void paint(Graphics gS <strong>{</strong> g.drawlmage(img, 10, 40, this);
g.drawlmage(cropimg, 150, 40, 100, 100, this);
g.drawlmage(replimg, 10, 150, this);
g.drawlmage(averimg, 150, 150, this);
}
public static void main(String[] args){
Frame f= new CropTest(" Масштабирование");
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
System.exit(0);
}
});
}
}

На рис. 15.3 слева сверху показано исходное изображение, справа – увеличенный фрагмент, внизу – изображение, увеличенное двумя способами.

Иллюстрированный самоучитель по Java › Изображения и звук › Как выделить фрагмент изображения
Рис. 15.3. Масштабированное изображение

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.