Программирование на языке Java

         

MemorylmageSource



MemorylmageSource

MemoryImageSource - класс, используемый для создания нового изображения из массива пикселей. Вот конструктор, используемый для создания объекта MemoryImageSource:

MemoryImageSource(int width, int height, int pixel[], int offset, int scanLineWidth)

Объект MemoryImageSource собирается из массива целых величин pixel[] в используемой по умолчанию модели цветов RGB для генерации данных объекта Image. В используемой по умолчанию цветовой модели пиксель - это целая величина состоящая из Alpha, Red, Green и Blue (OxAARRGGBB). Величина Alpha обозначает степень прозрачности элемента изображения.

MemoryImageSource возвращает объект ImageProducer, который используется с createImage для получения изображения, пригодного к использованию. Приведенный ниже короткий пример создает MemoryImageSource, используя вариант простого алгоритма (побитовое исключающее ИЛИ значений х и у координат каждого элемента изображения) из книги Gerard J.Holzmann "Beyond Photography, The Digital Darkroom". /* <title>Memory Image Generator</title> * <applet code="MemoryImager" width=256 height=256> * </applet> */ import java.applet.*; import java.awt.*; import java.awt.image.*; public class MemoryImager extends Applet { Image art; Dimension d; public void init() { generateImage(); } public void generateImage() { int pixels[] = new int[d.width * d.height]; int i = 0; int r, g, b; for(int y=0; y<h; y++) { for(int x=0; x<h; x++) { r = (x^y)&0xff; // red is x XOR у g = (x*2^y*2)&0xff; //green is 2x XOR 2y b = (x*4^y*4)&0xff; // blue is 4x XOR 4y pixels[i++]=(255<<24)|(r<<16)|(g<<8)|b; } } art = createImage (new MemoryImageSource(d.width,d.height,pixels,0,d.width)); } public void paint(Graphics g) { g.drawlmage(art, 0, 0, this); } }

Посмотрите как это интересное изображение выглядит на экране - MemoryImager.html.



Содержание раздела