final int dst = pixels[i];
        protected void doDrawAlphaRaster(Raster raster, int srcX, int srcY,                int dstX, int dstY, int width, int height, int color) {            final byte[] buf = new byte[width];            final int[] pixels = new int[width];                        final int c1 = color & 0xFF;            final int c2 = (color >> 8) & 0xFF;            final int c3 = (color >> 16) & 0xFF;                        for (int row = 0; row < height; row++) {                final int ofs = offset + ((dstY + row) * bytesPerLine)                        + (dstX << 2);                raster.getDataElements(srcX, srcY + row, width, 1, buf);                mem.getInts(ofs, pixels, 0, width);//                System.out.print(" w" + width + " ");                for (int i = 0; i < width; i++) {                    final int dst = pixels[i];                    final int alpha = (buf[i] & 0xFF);//                    System.out.print(NumberUtils.hex(alpha, 2));                    final int d1 = (dst & 0xFF);                    final int d2 = (dst >> 8) & 0xFF;                    final int d3 = (dst >> 16) & 0xFF;                                        final int r1 = ((alpha * (c1 - d1)) >> 8) + d1;                    final int r2 = ((alpha * (c2 - d2)) >> 8) + d2;                    final int r3 = ((alpha * (c3 - d3)) >> 8) + d3;                                        pixels[i] = (r1 & 0xFF) + ((r2 & 0xFF) << 8) + ((r3 & 0xFF) << 16); //                    pixels[i] = (alpha & 0xFF) + ((alpha & 0xFF) << 8) + ((alpha & 0xFF) << 16);//                    pixels[i] = (alpha > 128) ? color : dst;                }//                System.out.println();                mem.setInts(pixels, 0, ofs, width);            }        }