Программирование мобильных телефонов на 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


     

     

    Как переставить пикселы изображения

    В листинге 15.4 определяется преобразование пикселов изображения. Создается новый фильтр — расширение shiftFiiter класса imageFilter, сдвигающее изображение циклически вправо на указанное в конструкторе число пикселов. Все, что для этого нужно, — это переопределить метод setPixels().

    Листинг 15.4. Циклический сдвиг изображения

    import j ava.awt.*;

    import j ava.awt.event.*;

    import j ava.awt.image.*;

    class Shiftlmage extends Frame{ private Image img, newimg; 

    Shiftlmage(String s){ super(s);

    // 1. Получаем изображение из файла 

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

    // 2. Создаем экземпляр фильтра 

    ImageFilter imf = new ShiftFiiter(26); 

    // Сдвиг на 26 пикселов

    // 3. Получаем новые пикселы с помощью фильтра 

    ImageProducer ip = new FilteredlmageSource(img.getSource(), imf);

    // 4. Создаем новое изображение 

    newimg = createlmage(ip); 

    setSize(300, 200);

    setvisible(true) ; }

    public void paint(Graphics gr){

    gr.drawlmage(img, 20, 40, this); 

    gr.drawlmage(newimg, 100, 40, this); } 

    public static void main(StringU args){

    Frame f= new ShiftImage(" Циклический сдвиг изображения"); 

    f.atidWindowListener(new WindowAdapter()(

    public void windowClosing(WindowEvent ev){

    System.exit(0); )

    }); 

    }

    // Класс-фильтр 

    class ShiftFilter extends ImageFilterf

    private int sh; 

    // Сдвиг на sh пикселов вправо.

    public ShiftFilter(int shift)!{ sh = shift; } 

    public void setPixels(int x, int y, int w, int h,

    ColorModel m, byte[] pix, int off, int size){ 

    for (int k = x; k < x+w; k++){ 

    if (k+sh <= w)

    consumer.setPixels(k, y, 1, h, m, pix, off+sh+k, size); 

    else

    consumer.setPixels(k, y, 1, h, m, pix, off+sh+k-w, size); 

    }

    Как видно из листинга 15.4, переопределение метода setPixels о заключается в том, чтобы изменить аргументы этого метода, переставив, тем самым, пикселы изображения, и передать их потребителю consumer — полю класса imageFiiter методом setPixels о потребителя. На рис. 15.4 показан результат выполнения этой программы.

    Вторая модель обработки изображения введена в Java 2D. Она названа моделью прямого доступа (immediate mode model).

    Риc. 15.4. Перестановка  пикселов изображения

     

    -
    



    Copyright © vzlom-1.ru 2020-2021