package javax.microedition.lcdui;
import java.io.IOException;
import java.io.InputStream;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Bitmap.Config;
public class Image {
private final Bitmap bitmap;
private Image(final Bitmap bitmap) {
this.bitmap = bitmap;
}
public static Image createImage(final byte[] imageData, final int imageOffset,
final int imageLength) {
final Bitmap bitmap = BitmapFactory.decodeByteArray(imageData, imageOffset, imageLength);
return new Image(bitmap);
}
public static Image createImage(final Image image, final int x, final int y, final int width,
final int height, final int transform) {
//TODO jaanus : transform
return new Image(Bitmap.createBitmap(image.bitmap, x, y, width, height));
}
public static Image createImage(final int width, final int height) {
final Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
return new Image(bitmap);
}
public static Image createImage(final String name) throws java.io.IOException {
return createImage(Image.class.getResourceAsStream(name));
}
public static Image createImage(final InputStream stream) throws IOException {
final Bitmap bitmap = BitmapFactory.decodeStream(stream);
return new Image(bitmap);
}
public static Image createRGBImage(final int[] imageData, final int width, final int height, final boolean processAlpha){
Config conf = null;
if(processAlpha){
conf = Bitmap.Config.ARGB_8888;
}else{
conf = Bitmap.Config.RGB_565;
}
final Bitmap tmp = Bitmap.createBitmap(imageData,width,height,conf);
return new Image(tmp);
}
public Graphics getGraphics() {
return new Graphics(new android.graphics.Canvas(bitmap));
}
public int getHeight() {
return bitmap.getHeight();
}
public int getWidth() {
return bitmap.getWidth();
}
public void getRGB(final int[] rgbData, final int offset, final int scanlength, final int x,
final int y, final int width, final int height) {
bitmap.getPixels(rgbData, offset, scanlength, x, y, width, height);
}
public Bitmap getBitmap() {
return bitmap;
}
}