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

:: Меню ::

Главная

Каталог сайтов
Веб-дизайн
Навигация
Доски объявлений
Общение
Каталоги
Скрипты
Знакомства
Другое
Иллюстрированный самоучитель по Java
Изображения и звук
  • Модель обработки "поставщик-потребитель"
    Классы-фильтры
    Как выделить фрагмент изображения
    Как изменить цвет изображения
    Как переставить пикселы изображения
  • Модель обработки прямым доступом
    Преобразование изображения в Java 2D
    Аффинное преобразование изображения
    Изменение интенсивности изображения
    Изменение составляющих цвета
    Создание различных эффектов
    Анимация
    Улучшение изображения двойной буферизацией
    Звук
    Проигрывание звука в Java 2
    Синтез и запись звука в Java 2
  • :::::::::::::::::::::::::::::::::::::::::::::

    Гостевая книга
    Контакты
    Добавить в избраное

    :: Друзья ::

    Informatuka.info - Курс лекцій з Інформатики
     

    :: Статистика ::

    Яндекс цитирования сайта Inet Neskli Com
    - -
     

     

     

     

     

     

     

    Изменение интенсивности изображения

    Изменение интенсивности изображения выражается математически в умножении каждой составляющей цвета на число factor и прибавлении к результату умножения числа offset. Результат приводится к диапазону значений составляющей. После этого интенсивность каждой составляющей цвета линейно изменяется в одном и том же масштабе.

    Числа factor и offset постоянны для каждого пиксела и задаются в конструкторе класса вместе с правилами визуализации hints:

    RescaleOp(float factor, float^offset, RenderingHints hints) После этого остается применить метод filter ().

    На рис. 15.7 интенсивность каждого цвета уменьшена вдвое, в результате белый фон стал серым, а цвета — темнее. Затем интенсивность увеличена на 70 единиц. В листинге 15.6 приведена программа, выполняющая это преобразование.

    Листинг 15.6. Изменение интенсивности изображения

    import Java.awt.*;

    import j ava.awt.image.*;

    import j ava.awt.event.*;

    public class Rescale extends Frame{ 

    private Bufferedlmage bi; 

    public Rescale(String s){ 

    super (s) ;

    Image img = getToolkit().getlmage("javalogo52x88.gif"); 

    try{

    MediaTracker mt = new MediaTracker(this); 

    mt.addlmage(img, 0); 

    mt.waitForlD(O); }

    catch(Exception e){}

    bi = new Bufferedlmage(img.getWidth(this), img.getHeight(this),

    BufferedImage.TYPE_INT_RGB); 

    Graphics2D big = bi.createGraphics(); 

    big.drawlmage(img, 0, 0, this); 

    }

    public void paint(Graphics g){ 

    Graphics2D g2 = (Graphics2D)g; 

    int w = getSize().width; 

    int bw = bi.getWidth(this);

    int bh = bi.getHeight(this); 

    Bufferedlmage bimg =

    new Bufferedlmage(bw, bh, BufferedImage.TYPE_INT_RGB); 

    //——————— Начало определения преобразования --——-——— 

    RescaleOp гор = new RescaleOp(0.5f, 70.Of, null); 

    rop.filter(bi, bimg); 

    //——————— Конец определения преобразования ———————

    g2.drawlmage(bi, null, 10, 30); 

    g2.drawlmage(bimg, null, w/2+3, 30); 

    public static void main(String(] args){

    Frame f = new Rescale(" Изменение интенсивности"); 

    f.addWindowListener(new WindowAdapter(){ 

    public void windowClosing(WindowEvent e) {

    System.exit(0);

    }

    ));

    f.setSize(300, 200);

    f.setvisible(true);

    }

    Рис. 15.7. Изменение  интенсивности изображения

     


    :: Наша кнопка ::

    Получить код:

    Поддержите наш ресурс - разместите нашу кнопку на своем сайте


    :: Реклама ::

    > <+
    <


    :: Ссылки ::

    -


    ::Баннеры ::

     -
    -
     

     

     

     


    Copyright © Нескли.ком, 2008