Программирование мобильных телефонов на Java


Программирование мобильных телефонов

  • Введение
  • Глава 1. Устройство мобильных телефонов
  • Глава 2. Платформа Java 2 Micro Edition
  • Глава 3. Средства разработки мобильных приложений
  • Глава 4. Телефонные эмуляторы
  • Глава 5. Механизм работы приложений Java 2 ME
  • Глава 6. Классы пользовательского интерфейса
  • Глава 7. Программирование графики
  • Глава 8. Техника создания игр
  • Глава 9. Мобильная мультимедиа-библиотека
  • Заключение
  • Приложение 1. Основы языка Java
  • Приложение 2. Справочник по Java 2 Micro Edition

     

    Программирование на Java

  • Введение
  • Глава 1. Встроенные типы данных, операции над ними
  • Глава 2. Объектно-ориентированное программирование в Java
  • Глава 3. Пакеты и интерфейсы
  • Глава 4. Классы-оболочки
  • Глава 5. Работа со строками
  • Глава 6. Классы-коллекции
  • Глава 7. Классы-утилиты
  • Глава 8. Принципы построения графического интерфейса
  • Глава 9. Графические примитивы
  • Глава 10. Основные компоненты
  • Глава 11. Размещение компонентов
  • Глава 12. Обработка событий
  • Глава 13. Создание меню
  • Глава 14. Апплеты
  • Глава 15. Изображения и звук
  • Глава 16. Обработка исключительных ситуаций
  • Глава 17. Подпроцессы
  • Глава 18. Потоки ввода/вывода
  • Глава 19. Сетевые средства Java
  • Приложение. Развитие Java

  • 

    3fb01dc2


     

     

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

    Изменение интенсивности изображения выражается математически в умножении каждой составляющей цвета на число 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 © vzlom-1.ru 2020-2021