1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| public static final int[] getPixels(Image img) { final int[] pix = new int[img.getWidth(null) * img.getHeight(null)]; final PixelGrabber pg = new PixelGrabber( img, 0, 0, img.getWidth(null), img.getHeight(null), pix, 0, img.getWidth(null)); try { pg.grabPixels(); } catch (InterruptedException e) { } return pix; } public static final Image getImage(int[] pixels, int w, int h) { return Toolkit.getDefaultToolkit().createImage( new MemoryImageSource(w, h, pixels, 0, w)); }
public static final Image applyKeyColorMask(Image img, Color keyColor) { final int w = img.getWidth(null); final int h = img.getHeight(null); final int[] pxls = getPixels(img); final int blank = new Color(255, 0, 0, 0).getRGB(); for (int i = 0; i < pxls.length; i++) { if (pxls[i] == keyColor.getRGB()) { pxls[i] = blank; } } return getImage(pxls, w, h); } |