@Override public BufferedImage getImage() { ByteBuffer buffer = getImageBytes(); if (buffer == null) { LOG.error("Images bytes buffer is null!"); return null; } byte[] bytes = new byte[size.width * size.height * 3]; byte[][] data = new byte[][] { bytes }; buffer.get(bytes); DataBufferByte dbuf = new DataBufferByte(data, bytes.length, OFFSET); WritableRaster raster = Raster.createWritableRaster(smodel, dbuf, null); BufferedImage bi = new BufferedImage(cmodel, raster, false, null); bi.flush(); return bi; }
DataBuffer videoBuffer = new DataBufferByte(frame, frame.length); ComponentSampleModel sampleModel = new ComponentSampleModel(DataBuffer.TYPE_BYTE, width, height, 3, width * 3, new int[] {0, 1, 2}); this.grid = Raster.createWritableRaster(sampleModel, videoBuffer, null);
DataBufferByte dataBuffer = new DataBufferByte(data, bytes.length, offsets); WritableRaster raster = Raster.createWritableRaster(sampleModel, dataBuffer, null); BufferedImage image = new BufferedImage(colorModel, raster, false, null);
raster = Raster.createInterleavedRaster(new DataBufferByte(rgb, rgb.length), w, h,
Arrays.fill(bankData[i], (byte) 0); db = new DataBufferByte(bankData, (int) size);
public void processFrame(byte[] frame, int width, int height) { DataBuffer videoBuffer = new DataBufferByte(frame,frame.length); BufferedImage currentImage = new BufferedImage(width,height,BufferedImage.TYPE_3BYTE_BGR); ComponentSampleModel sampleModel = new ComponentSampleModel(DataBuffer.TYPE_BYTE,width,height,3,width*3,new int[] {2,1,0}); Raster raster = Raster.createRaster(sampleModel,videoBuffer,null); currentImage.setData(raster); }
private static Paint create8x8Pattern(final byte[] pPattern) { WritableRaster raster = Raster.createPackedRaster(new DataBufferByte(pPattern, 8), 8, 8, 1, new Point()); BufferedImage img = new BufferedImage(QuickDraw.MONOCHROME, raster, false, null); return new TexturePaint(img, new Rectangle(8, 8)); }
BufferedImage imageFromRawData(int width, int height, int scanLine, byte[] data) { DataBuffer buffer = new DataBufferByte(data, data.length); WritableRaster raster = Raster.createInterleavedRaster( buffer, width, height, scanLine, 3, new int[]{0, 1, 2}, null ); ColorModel cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); return new BufferedImage(cm, raster, cm.isAlphaPremultiplied(), null); }
private static Paint create8x8Pattern(final byte[] pPattern, Color fg, Color bg) { switch (isSolid(pPattern)) { case 0: // 0x00 return bg; case -1: // 0xff return fg; default: // Fall through } WritableRaster raster = Raster.createPackedRaster(new DataBufferByte(pPattern, 8), 8, 8, 1, new Point()); IndexColorModel cm = new IndexColorModel(1, 2, new int[] {bg.getRGB(), fg.getRGB()}, 0, false, -1, DataBuffer.TYPE_BYTE); BufferedImage img = new BufferedImage(cm, raster, false, null); return new TexturePaint(img, new Rectangle(8, 8)); }
private BufferedImage create2ByteGrayAlphaImage(int width, int height) { /** * gray + alpha */ int[] bandOffsets = new int[] {1, 0}; int bands = bandOffsets.length; /** * Color Model usesd for raw GRAY + ALPHA */ final ColorModel CM_GRAY_ALPHA = new ComponentColorModel( ColorSpace.getInstance(ColorSpace.CS_GRAY), true, false, Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE); // Init data buffer of type byte DataBuffer buffer = new DataBufferByte(width * height * bands); // Wrap the data buffer in a raster WritableRaster raster = Raster.createInterleavedRaster(buffer, width, height, width * bands, bands, bandOffsets, new Point(0, 0)); // Create a custom BufferedImage with the raster and a suitable color model return new BufferedImage(CM_GRAY_ALPHA, raster, false, null); }
/** * create a buffered image from a set of color triplets * * @param data * @param width * @param height * @return */ public static BufferedImage ByteBufferImage(byte[] data, int width, int height) { int[] bandoffsets = {0, 1, 2, 3}; DataBufferByte dbb = new DataBufferByte(data, data.length); WritableRaster wr = Raster.createInterleavedRaster(dbb, width, height, width * 4, 4, bandoffsets, null); int[] bitfield = {8, 8, 8, 8}; ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB); ColorModel cm = new ComponentColorModel( cs, bitfield, true, false, Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE); return new BufferedImage(cm, wr, false, null); }
static protected BufferedImage readRawThumbnail(final byte[] thumbnail, final int size, final int offset, int w, int h) { DataBufferByte buffer = new DataBufferByte(thumbnail, size, offset); WritableRaster raster; ColorModel cm; if (thumbnail.length == w * h) { raster = Raster.createInterleavedRaster(buffer, w, h, w, 1, new int[] {0}, null); cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_GRAY), false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); } else { raster = Raster.createInterleavedRaster(buffer, w, h, w * 3, 3, new int[] {0, 1, 2}, null); cm = new ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); } return new BufferedImage(cm, raster, cm.isAlphaPremultiplied(), null); }
@Override public AwtHillshadingBitmap createMonoBitmap(int width, int height, byte[] buffer, int padding, BoundingBox area) { DataBuffer dataBuffer = new DataBufferByte(buffer, buffer.length); SampleModel singleByteSampleModel = monoColorModel.createCompatibleSampleModel(width + 2 * padding, height + 2 * padding); WritableRaster writableRaster = Raster.createWritableRaster(singleByteSampleModel, dataBuffer, null); BufferedImage bufferedImage = new BufferedImage(monoColorModel, writableRaster, false, null); return new AwtHillshadingBitmap(bufferedImage, padding, area); }
+ numElems + " elements per bank"); buff = new DataBufferByte(numElems, numBanks); for (int elem = 0; elem < numElems; elem++) { for (int bank = 0; bank < numBanks; bank++) {
private BufferedImage readIndexed() { // 1 byte: xThumb // 1 byte: yThumb // 768 bytes: palette // x * y bytes: 8 bit indexed pixels int w = segment.thumbnail[0] & 0xff; int h = segment.thumbnail[1] & 0xff; int[] rgbs = new int[256]; for (int i = 0; i < rgbs.length; i++) { rgbs[i] = (segment.thumbnail[3 * i + 2] & 0xff) << 16 | (segment.thumbnail[3 * i + 3] & 0xff) << 8 | (segment.thumbnail[3 * i + 4] & 0xff); } IndexColorModel icm = new InverseColorMapIndexColorModel(8, rgbs.length, rgbs, 0, false, -1, DataBuffer.TYPE_BYTE); DataBufferByte buffer = new DataBufferByte(segment.thumbnail, segment.thumbnail.length - 770, 770); WritableRaster raster = Raster.createPackedRaster(buffer, w, h, 8, null); return new BufferedImage(icm, raster, icm.isAlphaPremultiplied(), null); }
/** * Converts a gray {@code MagickImage} to a {@code BufferedImage}, of * type {@code TYPE_USHORT_GRAY} or {@code TYPE_BYTE_GRAY}. * * @param pImage the original {@code MagickImage} * @param pAlpha keep alpha channel * @return a new {@code BufferedImage} * * @throws MagickException if an exception occurs during conversion * * @see BufferedImage */ private static BufferedImage grayToBuffered(MagickImage pImage, boolean pAlpha) throws MagickException { Dimension size = pImage.getDimension(); int length = size.width * size.height; int bands = pAlpha ? 2 : 1; byte[] pixels = new byte[length * bands]; // TODO: Make a fix for 16 bit TYPE_USHORT_GRAY?! // Note: The ordering AI or I corresponds to BufferedImage // TYPE_CUSTOM and TYPE_BYTE_GRAY respectively pImage.dispatchImage(0, 0, size.width, size.height, pAlpha ? "AI" : "I", pixels); // Init databuffer with array, to avoid allocation of empty array DataBuffer buffer = new DataBufferByte(pixels, pixels.length); int[] bandOffsets = pAlpha ? new int[] {1, 0} : new int[] {0}; WritableRaster raster = Raster.createInterleavedRaster(buffer, size.width, size.height, size.width * bands, bands, bandOffsets, LOCATION_UPPER_LEFT); return new BufferedImage(pAlpha ? CM_GRAY_ALPHA : CM_GRAY_OPAQUE, raster, pAlpha, null); }
DataBuffer buffer = new DataBufferByte(pixels, pixels.length);
private Raster readMask(final IconResource resource) throws IOException { Dimension size = resource.size(); int width = size.width; int height = size.height; byte[] mask = new byte[width * height]; imageInput.seek(resource.start + ICNS.RESOURCE_HEADER_SIZE); if (resource.isMaskType()) { // 8 bit mask imageInput.readFully(mask, 0, resource.length - ICNS.RESOURCE_HEADER_SIZE); } else if (resource.hasMask()) { // Embedded 1bit mask byte[] maskData = new byte[(resource.length - ICNS.RESOURCE_HEADER_SIZE) / 2]; imageInput.skipBytes(maskData.length); // Skip the 1 bit image data imageInput.readFully(maskData); // Unpack 1bit mask to 8 bit int bitPos = 0x80; for (int i = 0, maskLength = mask.length; i < maskLength; i++) { mask[i] = (byte) ((maskData[i / 8] & bitPos) != 0 ? 0xff : 0x00); if ((bitPos >>= 1) == 0) { bitPos = 0x80; } } } else { throw new IllegalArgumentException(String.format("Not a mask resource: %s", resource)); } return Raster.createBandedRaster(new DataBufferByte(mask, mask.length), width, height, width, new int[]{0}, new int[]{0}, null); }
DataBuffer buffer = new DataBufferByte(pixels, pixels.length);
DataBuffer buffer = new DataBufferByte(pixels, pixels.length); ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB); int[] nBits = {8, 8, 8};