Java SWT 图像 PaletteData 索引图和直接图
索引图(Indexed palette):
就是在palette中定义了一个RGB的数组,然后,每一个像素点都是一个RGB数组的坐标来到palette中去取值。
public class PaletteDirectExample {static Display display;public void drawImage(final Image image) {Shell shell = new Shell (display);shell.setLayout (new FillLayout ());shell.setSize(400, 300);shell.setLocation(600,300);Canvas canvas = new Canvas (shell, SWT.NONE);canvas.addPaintListener (new PaintListener () {public void paintControl (PaintEvent e) {e.gc.drawImage (image, 20, 20);}});shell.open ();while (!shell.isDisposed ()) {if (!display.readAndDispatch ())display.sleep ();}}public Image createIndexImage() {// *** PaletteData(redMask, greenMask, blueMask)PaletteData palette = new PaletteData(0xFF0000 , 0xFF00 , 0xFF);ImageData imageData = new ImageData(48,48,24,palette);for (int x=0;x<48;x++) {for(int y=0;y<48;y++) {if(y > 11 && y < 35 && x > 11 && x < 35) {imageData.setPixel(x,y,0xFFFFFF); // Set the center to green} else {imageData.setPixel(x,y,0xFF); // and everything else to red}}};return new Image(display,imageData);}public static void main(String[] args) {display = new Display();PaletteDirectExample e = new PaletteDirectExample();e.drawImage(e.createIndexImage());}}
?