@MethodHook(value = "<init>", end = true) @Inject public void init(int width, int height, Component canvas) { if (!client.isGpu()) { return; } final int[] pixels = getPixels(); // we need to make our own buffered image for the client with the alpha channel enabled in order to // have alphas for the overlays applied correctly DataBufferInt dataBufferInt = new DataBufferInt(pixels, pixels.length); DirectColorModel directColorModel = new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), 32, 0xff0000, 0xff00, 0xff, 0xff000000, true, DataBuffer.TYPE_INT); WritableRaster writableRaster = Raster.createWritableRaster(directColorModel.createCompatibleSampleModel(width, height), dataBufferInt, null); BufferedImage bufferedImage = new BufferedImage(directColorModel, writableRaster, true, new Hashtable()); setImage(bufferedImage); }
DataBufferInt imageBuffer = new DataBufferInt(width * height); WritableRaster raster = Raster.createPackedRaster(imageBuffer, width, height, width, masks, null); BufferedImage view = new BufferedImage(colorModel, raster, false, null);
Arrays.fill(bankData[i], 0); db = new DataBufferInt(bankData, (int) size);
strideElementsAligned = strideBytesAligned / 4; cm = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF); buffer = new DataBufferInt(strideElementsAligned * height); raster = Raster.createPackedRaster(buffer, bih.biWidth, height, strideElementsAligned, ((DirectColorModel) cm).getMasks(), null); break;
Arrays.fill(intDataArray[i], noDataValue.intValue()); dataBuffer = new DataBufferInt(intDataArray, dataBufferSize); break; case DataBuffer.TYPE_FLOAT:
Arrays.fill(bankData[i], 0); db = new DataBufferInt(bankData, (int) size);
DataBuffer db = new DataBufferInt(pixArray, pixArray.length); raster = Raster.createPackedRaster(db, srcRect.width, srcRect.height, srcRect.width, ((DirectColorModel) cm).getMasks(), null);
private void readBitmap32(final BitmapDescriptor pBitmap) throws IOException { int[] pixels = new int[pBitmap.getWidth() * pBitmap.getHeight()]; // Will create TYPE_INT_ARGB DirectColorModel cm = (DirectColorModel) ColorModel.getRGBdefault(); DataBuffer buffer = new DataBufferInt(pixels, pixels.length); WritableRaster raster = Raster.createPackedRaster( buffer, pBitmap.getWidth(), pBitmap.getHeight(), pBitmap.getWidth(), cm.getMasks(), null ); pBitmap.image = new BufferedImage(cm, raster, cm.isAlphaPremultiplied(), null); for (int y = 0; y < pBitmap.getHeight(); y++) { int offset = (pBitmap.getHeight() - y - 1) * pBitmap.getWidth(); imageInput.readFully(pixels, offset, pBitmap.getWidth()); if (abortRequested()) { processReadAborted(); break; } processImageProgress(100 * y / (float) pBitmap.getHeight()); } // There might be a mask here as well, but we'll ignore it, // and use the 8 bit alpha channel in the ARGB pixel data }
int w = 300; int h = 200; int[] matrix = new int[w * h]; // ...manipulate the matrix... DataBufferInt buffer = new DataBufferInt(matrix, matrix.length); int[] bandMasks = {0xFF0000, 0xFF00, 0xFF, 0xFF000000}; // ARGB (yes, ARGB, as the masks are R, G, B, A always) order WritableRaster raster = Raster.createPackedRaster(buffer, w, h, w, bandMasks, null); System.out.println("raster: " + raster); ColorModel cm = ColorModel.getRGBdefault(); BufferedImage image = new BufferedImage(cm, raster, cm.isAlphaPremultiplied(), null); System.err.println("image: " + image);
private DataBufferInt readDataBufferInt( DataInput in ) throws IOException { int[][] data = new int[in.readInt()][]; for(int i=0; i<data.length; i++) { data[i] = new int[ in.readInt() ]; for( int j=0; j<data[i].length; j++) data[i][j] = in.readInt(); } return new DataBufferInt( data, in.readInt() ); } }
public static BufferedImage makeRGBImage(byte[][] data, int w, int h) { int[] buf = new int[data[0].length]; int nBits = (data.length - 1) * 8; for (int i=0; i<buf.length; i++) { for (int q=0; q<data.length; q++) { buf[i] |= ((data[q][i] & 0xff) << (nBits - q*8)); } } DataBuffer buffer = new DataBufferInt(buf, buf.length); return constructImage(data.length, DataBuffer.TYPE_INT, w, h, false, false, buffer); }
@Override protected DataBufferInt createDataBuffer( final IntArray data ) { final int[] sourceArray = data.getCurrentStorageArray(); return new DataBufferInt( sourceArray, sourceArray.length ); }
public static BufferedImage makeRGBImage(byte[][] data, int w, int h) { int[] buf = new int[data[0].length]; int nBits = (data.length - 1) * 8; for (int i=0; i<buf.length; i++) { for (int q=0; q<data.length; q++) { buf[i] |= ((data[q][i] & 0xff) << (nBits - q*8)); } } DataBuffer buffer = new DataBufferInt(buf, buf.length); return constructImage(data.length, DataBuffer.TYPE_INT, w, h, false, false, buffer); }
@Override protected DataBufferInt createDataBuffer( final IntArray data ) { final int[] sourceArray = data.getCurrentStorageArray(); return new DataBufferInt( sourceArray, sourceArray.length ); }
if (pPixels instanceof int[]) { int[] data = (int[]) pPixels; buffer = new DataBufferInt(data, data.length); bands = pColorModel.getNumComponents();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); IntBuffer intBuffer = ByteBuffer.wrap(img).asIntBuffer(); int[] imgInts = new int[img.length * Byte.SIZE / Integer.SIZE]; intBuffer.get(imgInts); image.setData(Raster.createRaster(image.getSampleModel(), new DataBufferInt(imgInts, imgInts.length), new Point()));
/** Converts an array of integer pixels into an image. * The array is referenced by the image. */ public static BufferedImage toImage(int[] pixels, int width, int height) { return new BufferedImage(DirectColorModel.getRGBdefault(),// Raster.createWritableRaster(new SinglePixelPackedSampleModel(DataBuffer.TYPE_INT,width,height, new int[]{0xff00000,0xff00,0xff}),// new DataBufferInt(pixels, width*height),new Point(0,0)), false, null ); } }
void createBufferedImage() { if (rgbSampleModel==null) rgbSampleModel = getRGBSampleModel(); if (rgbRaster==null) { DataBuffer dataBuffer = new DataBufferInt(rgbPixels, width*height, 0); rgbRaster = Raster.createWritableRaster(rgbSampleModel, dataBuffer, null); } if (rgbImage==null) rgbImage = new BufferedImage(rgbCM, rgbRaster, false, null); awtImage = rgbImage; }
Image createBufferedImage() { if (rgbSampleModel==null) rgbSampleModel = getRGBSampleModel(); if (rgbRaster==null) { DataBuffer dataBuffer = new DataBufferInt(pixels, width*height, 0); rgbRaster = Raster.createWritableRaster(rgbSampleModel, dataBuffer, null); } if (image==null) { image = new BufferedImage(cm, rgbRaster, false, null); } return image; }
@Override public WritableRaster createCompatibleWritableRaster(int w, int h) { int[] bandOffsets = new int[nChannels]; for (int i=0; i<nChannels; i++) bandOffsets[i] = i; SampleModel m = new ComponentSampleModel(DataBuffer.TYPE_INT, w, h, nChannels, w * nChannels, bandOffsets); DataBuffer db = new DataBufferInt(w * h, nChannels); return Raster.createWritableRaster(m, db, null); }