Главная Интернет WEB-учебник Java в примерах


Интернет клуб

Новая страница
Описание html
Javascript
Java в примерах

Что такое JAVA?
Первое приложение на JAVA
Первый апплет на JAVA
Управление шрифтами
Строковые переменные
Работа с массивами
Работа с графикой
Операции с мышкой
Операции с клавиатурой
Структура апплета
Работа с потоками
Передача параметров в апплет
Загрузка изображения в апплет
Контроль за ходом загрузки изображения
Двойная буферизация
Создание изображения из массива данных
Корректировка изображения

Полезные сайты




Задайте вопрос





Web-учебник. Раздел 4. Java в примерах.

Создание изображения из массива данных







Для создания обьекта Image можно использовать метод MemoryImageSource . Для этого в качестве входной информации используется целочисленный массив. Каждый элемент массива описывает один пиксель в стандартной цветовой модели RGB. Изображение, передаваемое пикселем, представляется в виде целого числа, которое в шестнадцатеричном виде строится следующим образом : 0xAARRGGBB, где:
- AA - степень прозрачности пикселя от 0 (полная непрозрачность)до 255 (полная прозрачность),
- RR - красная составляющая,
- GG - зеленая составляющая,
- BB - голубая составляющая.
Метод имеет следующий вид :

MemoryImageSource (int ширина , int высота, int maссив, int смещение , int строка);

где:
- ширина - ширина изображения,
- длина - длина изображения,
- массив - массив числовых данных, из которых строится изображение,
- смещение - точка отсчета в массиве данных, с которой начинается считывание данных (обычно смещение = 0),
- строка - ширина строки, выбираемая из массива (обычно, строка = ширина).

В следующем примере изображение создается с помощью массива узоров (Автор - Gerald J. Holzmann).

//------------------------------------------------------------  
//   Program :  MyForthImage
//------------------------------------------------------------  
//   Author  :  Katz Yakov 
//------------------------------------------------------------  
//   Date    :  31/01/98
//------------------------------------------------------------  
import java.awt.*;
import java.applet.*;
import java.awt.image.*;
//------------------------------------------------------------
// Создание класса MyForthImage
public  class  MyForthImage  extends  Applet{
   // Обьявление обьекта класса Image
   Image img;
   // Обьявление и определение значение фильтра
   int filter = 255;
   // Ширина изображения
   int XMax   = 256;
   // Высота изображения
   int YMax   = 256;
   // Начальные действия
   public void init() {
      // Определение массива пикселей
      int pixels[] = new int [XMax * YMax];
      // Переменная для массива пикселей
      int i = 0;
      // Заполнение массива пикселей
      for (int y = 0; y < YMax; y++) {
         for (int x = 0; x < XMax; x++) {
            int r = (x^y)&0xff;
            int g = (x*2^y*2)&0xff;
            int b = (x*4^y*4)&0xff;
            // Построение пикселя по принципу AARRGGBB
            pixels[i++] = (filter << 24 ) |
                          (r      << 16 ) |
                          (g      <<  8 ) | b;
         }
      }
      // Создание изображения
      img = createImage(new
            MemoryImageSource(XMax, YMax, pixels, 0, XMax));
   }
   // Вывод изображения в окно апплета
   public void paint(Graphics  gr) {
      gr.drawImage(img, 0, 0, this);
   }
} 
Апплет выглядит следующим образом:







  ©1996-2007   Megapolis Org   E-mail:   info@megapolis.org