return imageData;
}
public static BufferedImage convertSWTImage(ImageData data) {
ColorModel colorModel = null;
PaletteData palette = data.palette;
if (palette.isDirect) {
BufferedImage bufferedImage = new BufferedImage(data.width, data.height, BufferedImage.TYPE_INT_ARGB);
ImageData transparencyMask = data.getTransparencyMask();
for(int x=data.width-1; x >= 0; x--) {
for(int y=data.height-1; y >= 0; y--) {
RGB rgb = data.palette.getRGB(data.getPixel(x, y));
int pixel = rgb.red << 16 | rgb.green << 8 | rgb.blue;
rgb = transparencyMask.palette.getRGB(transparencyMask.getPixel(x, y));
int mask = rgb.red << 16 | rgb.green << 8 | rgb.blue;
if(mask != 0) {
int alpha = data.getAlpha(x, y);
if(alpha > 0) {
pixel = pixel & 0x00FFFFFF | alpha << 24;
bufferedImage.setRGB(x, y, pixel);
}
}
}
}
// BufferedImage bufferedImage = new BufferedImage(data.width, data.height, BufferedImage.TYPE_INT_ARGB);
// int transparencyType = data.getTransparencyType();
// int transparentPixel = data.transparentPixel;
// ImageData transparencyMask = data.getTransparencyMask();
// for(int x=data.width-1; x >= 0; x--) {
// for(int y=data.height-1; y >= 0; y--) {
// int pixel = data.getPixel(x, y);
// RGB rgb = data.palette.getRGB(pixel);
// int iRGB = rgb.red << 16 | rgb.green << 8 | rgb.blue;
// switch(transparencyType) {
// case SWT.TRANSPARENCY_PIXEL: {
// if(pixel != transparentPixel) {
// bufferedImage.setRGB(x, y, iRGB);
// }
// break;
// }
// case SWT.TRANSPARENCY_ALPHA: {
// int alpha = data.getAlpha(x, y);
// if(alpha > 0) {
// iRGB = iRGB & 0x00FFFFFF | alpha << 24;
// bufferedImage.setRGB(x, y, iRGB);
// }
// break;
// }
// case SWT.TRANSPARENCY_MASK: {
// rgb = transparencyMask.palette.getRGB(transparencyMask.getPixel(x, y));
// int mask = rgb.red << 16 | rgb.green << 8 | rgb.blue;
// if(mask != 0) {
// int alpha = data.getAlpha(x, y);
// if(alpha > 0) {
// iRGB = iRGB & 0x00FFFFFF | alpha << 24;
// }
// bufferedImage.setRGB(x, y, iRGB);
// }
// break;
// }
// default:
// bufferedImage.setRGB(x, y, iRGB);
// break;
// }
// }
// }
// colorModel = new DirectColorModel(data.depth, palette.redMask, palette.greenMask, palette.blueMask);
// BufferedImage bufferedImage = new BufferedImage(colorModel, colorModel.createCompatibleWritableRaster(data.width, data.height), false, null);
// WritableRaster raster = bufferedImage.getRaster();
// int[] pixelArray = new int[3];
// for (int y = 0; y < data.height; y++) {
// for (int x = 0; x < data.width; x++) {
// int pixel = data.getPixel(x, y);
// RGB rgb = palette.getRGB(pixel);
// pixelArray[0] = rgb.red;
// pixelArray[1] = rgb.green;
// pixelArray[2] = rgb.blue;
// raster.setPixels(x, y, 1, 1, pixelArray);
// }
// }
return bufferedImage;
}
RGB[] rgbs = palette.getRGBs();
byte[] red = new byte[rgbs.length];
byte[] green = new byte[rgbs.length];
byte[] blue = new byte[rgbs.length];
for (int i = 0; i < rgbs.length; i++) {
RGB rgb = rgbs[i];