/*
* @(#)GenerateImage.java 1.2 02/08/21
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package com.sun.media.ui;
import java.awt.*;
import java.awt.image.*;
public class GenerateImage {
private IndexColorModel icm = null;
private DirectColorModel dcm = null;
private Image image = null;
private byte [] data = null;
private int width;
private int height;
byte reds[] = new byte[256];
byte greens[] = new byte[256];
byte blues[] = new byte[256];
private native int getColors(byte [] colors, int component);
private native boolean generateImage(String imageName);
public GenerateImage() {
int ncolors = getColors(reds, 0);
getColors(greens, 1);
getColors(blues, 2);
icm = new IndexColorModel(8, 256, reds, greens, blues, 0);
}
public Image getImage(String imageName) {
image = null;
data = null;
if (generateImage(imageName)) {
createImage();
return image;
} else
return null;
}
protected synchronized void createBuffer(int w, int h) {
width = w;
height = h;
data = new byte[w * h];
}
protected synchronized void createImage() {
MemoryImageSource mis = new MemoryImageSource(width, height,
icm, data, 0, width);
Toolkit tk = Toolkit.getDefaultToolkit();
image = tk.createImage(mis);
tk.prepareImage(image, width, height, null);
}
}
|