int w = raster.getWidth(); int h = raster.getHeight(); byte[] rgb = new byte[w * h * 3]; float[] Y = raster.getSamples(0, 0, w, h, 0, (float[]) null); float[] Cb = raster.getSamples(0, 0, w, h, 1, (float[]) null); float[] Cr = raster.getSamples(0, 0, w, h, 2, (float[]) null); float[] K = raster.getSamples(0, 0, w, h, 3, (float[]) null); raster = Raster.createInterleavedRaster(new DataBufferByte(rgb, rgb.length), w, h, Transparency.OPAQUE, DataBuffer.TYPE_BYTE); return new BufferedImage(cm, (WritableRaster) raster, true, null);
int width = image.getWidth(); int height = image.getHeight(); int[][] result = new int[height][width]; result[row][col] = image.getRGB(col, row); final byte[] pixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData(); final int width = image.getWidth(); final int height = image.getHeight();
@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; }
private void fillDataAccessWithElevationData(Raster raster, DataAccess heights, int dataAccessWidth) { final int height = raster.getHeight(); final int width = raster.getWidth(); int x = 0; int y = 0; try { for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { short val = (short) raster.getPixel(x, y, (int[]) null)[0]; if (val < -1000 || val > 12000) val = Short.MIN_VALUE; heights.setShort(2 * (y * dataAccessWidth + x), val); } } heights.flush(); } catch (Exception ex) { throw new RuntimeException("Problem at x:" + x + ", y:" + y, ex); } }
protected BufferedImage getStartImage(BufferedImage copyFrom, int width, int height) { Map<String, Object> properties = null; if (copyFrom.getPropertyNames() != null) { properties = new HashMap<String, Object>(); for (String name : copyFrom.getPropertyNames()) { properties.put(name, copyFrom.getProperty(name)); } } SampleModel sm = copyFrom.getSampleModel().createCompatibleSampleModel(width, height); WritableRaster raster = Raster.createWritableRaster(sm, null); BufferedImage image = new BufferedImage( copyFrom.getColorModel(), raster, copyFrom.isAlphaPremultiplied(), (Hashtable<?, ?>) properties); // white background Graphics2D g2D = (Graphics2D) image.getGraphics(); Color save = g2D.getColor(); g2D.setColor(Color.WHITE); g2D.fillRect(0, 0, image.getWidth(), image.getHeight()); g2D.setColor(save); return image; }
private static MagickImage rgbToMagic(BufferedImage pImage, boolean pAlpha) throws MagickException { MagickImage image = new MagickImage(); BufferedImage buffered = ImageUtil.toBuffered(pImage, pAlpha ? BufferedImage.TYPE_4BYTE_ABGR : BufferedImage.TYPE_3BYTE_BGR); // Need to get data of sub raster, not the full data array, this is // just a convenient way Raster raster; if (buffered.getRaster().getParent() != null) { raster = buffered.getData(new Rectangle(buffered.getWidth(), buffered.getHeight())); } else { raster = buffered.getRaster(); } image.constituteImage(buffered.getWidth(), buffered.getHeight(), pAlpha ? "ABGR" : "BGR", ((DataBufferByte) raster.getDataBuffer()).getData()); return image; }
@Override public void extract(BufferedImage image) { histogram = new double[18]; double[] directionality; ColorConvertOp op = new ColorConvertOp(image.getColorModel().getColorSpace(), ColorSpace.getInstance(ColorSpace.CS_GRAY), new RenderingHints(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY)); BufferedImage bimg = op.filter(image, null); bimg = ImageUtils.scaleImage(bimg, MAX_IMG_HEIGHT); Raster raster = bimg.getRaster(); int[] tmp = new int[3]; this.grayScales = new int[raster.getWidth()][raster.getHeight()]; for (int i = 0; i < raster.getWidth(); i++) { for (int j = 0; j < raster.getHeight(); j++) { raster.getPixel(i, j, tmp); this.grayScales[i][j] = tmp[0]; } } imgWidth = bimg.getWidth(); imgHeight = bimg.getHeight(); histogram[0] = this.coarseness(bimg.getWidth(), bimg.getHeight()); histogram[1] = this.contrast(); directionality = this.directionality(); for (int i = 2; i < histogram.length; i++) { histogram[i] = directionality[i - 2]; } }
public static FloatArray2D ImageToFloatArray2D(BufferedImage ip) { FloatArray2D image; Raster pixelArray = ip.getRaster(); int count = 0; int[] rgb = new int[3]; image = new FloatArray2D(ip.getWidth(), ip.getHeight()); for (int y = 0; y < ip.getHeight(); y++) { for (int x = 0; x < ip.getWidth(); x++) { rgb = pixelArray.getPixel(x, y, rgb); int b = rgb[2]; int g = rgb[1]; int r = rgb[0]; image.data[count] = 0.3f * r + 0.6f * g + 0.1f * b; count++; } } return image; }
void createRaster() { ColorModel cm = getColorModel(); raster = cm.createCompatibleWritableRaster((int)deviceBounds.getWidth(), (int)deviceBounds.getHeight()); BufferedImage img = new BufferedImage(cm, raster, false, null); Graphics2D graphics = img.createGraphics(); graphics.setRenderingHints(hints); graphics.translate(-deviceBounds.getX(), -deviceBounds.getY()); graphics.transform(xform); Raster img2 = pCtx.getRaster(0, 0, gradientSteps, 1); int[] rgb = new int[cm.getNumComponents()]; for (int i = gradientSteps-1; i>=0; i--) { img2.getPixel(i, 0, rgb); Color c = new Color(rgb[0],rgb[1],rgb[2]); if (rgb.length == 4) { // it doesn't work to use just a color with transparency ... graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, rgb[3]/255.0f)); } graphics.setStroke(new BasicStroke(i+1, capStyle, joinStyle)); graphics.setColor(c); graphics.draw(shape); } graphics.dispose(); } }
private void drawImage( SwingUniversalImage image, int locationX, int locationY, int imageSize ) { if ( isDrawingPixelatedImages() && image.isBitmap() ) { BufferedImage img = image.getAsBitmapForSize( imageSize, imageSize ); ColorModel cm = img.getColorModel(); Raster raster = img.getRaster(); for ( int x = 0; x < img.getWidth( observer ); x++ ) { for ( int y = 0; y < img.getHeight( observer ); y++ ) { Object pix = raster.getDataElements( x, y, null ); gc.setColor( new Color( cm.getRed( pix ), cm.getGreen( pix ), cm.getBlue( pix ), cm.getAlpha( pix ) ) ); gc.setStroke( new BasicStroke( 1.0f ) ); gc.drawLine( locationX + xOffset + x, locationY + yOffset + y, locationX + xOffset + x + 1, locationY + yOffset + y + 1 ); } } } else { image.drawToGraphics( gc, locationX, locationY, imageSize, imageSize ); } }
public WritableRaster copyData(WritableRaster wr) { ColorModel cm = getColorModel(); CachableRed cr = getSource(); ColorModel srcCM = cr.getColorModel(); SampleModel srcSM = cr.getSampleModel(); srcSM = srcSM.createCompatibleSampleModel(wr.getWidth(), wr.getHeight()); WritableRaster srcWR; srcWR = Raster.createWritableRaster(srcSM, new Point(wr.getMinX(), wr.getMinY())); getSource().copyData(srcWR); BufferedImage srcBI = new BufferedImage( srcCM, srcWR.createWritableTranslatedChild(0, 0), srcCM.isAlphaPremultiplied(), null); BufferedImage dstBI = new BufferedImage( cm, wr.createWritableTranslatedChild(0, 0), cm.isAlphaPremultiplied(), null); GraphicsUtil.copyData(srcBI, dstBI); return wr; }
final Rectangle srcRegion = new Rectangle(); final Rectangle destRegion = new Rectangle(); computeRegions(param, width, height, null, srcRegion, destRegion); wrapper.getSampleModel().getDataType(), destWidth, destHeight, numDstBands); final ColorModel colorModel = ImageIOUtilities.createColorModel(sampleModel); final WritableRaster raster = Raster.createWritableRaster(sampleModel, new Point(0, 0)); Hashtable<String, Object> properties = getNoDataProperties(wrapper); final BufferedImage image = new BufferedImage( colorModel, raster, colorModel.isAlphaPremultiplied(), properties); final int type = raster.getSampleModel().getDataType(); final int xmin = destRegion.x; final int ymin = destRegion.y; case DataBuffer.TYPE_DOUBLE: raster.setSample(x, y, dstBand, it.getDoubleNext()); break; raster.setSample(x, y, dstBand, it.getFloatNext()); break;
/** * Implementation helper: converts a RenderedImage to an Image */ protected Image renderedImageToImage(RenderedImage ri) { int x = ri.getMinX(); int y = ri.getMinY(); SampleModel sm = ri.getSampleModel(); ColorModel cm = ri.getColorModel(); WritableRaster wr = Raster.createWritableRaster(sm, new Point(x,y)); ri.copyData(wr); return new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null); }
Rectangle srcRegion = new Rectangle(); Rectangle destRegion = new Rectangle(); computeRegions(param, width, height, destination, srcRegion, destRegion); WritableRaster destRaster = clipToRect(destination.getRaster(), destRegion, param != null ? param.getDestinationBands() : null); checkReadParamBandSettings(param, rawType.getNumBands(), destRaster.getNumBands()); WritableRaster rowRaster = rawType.createBufferedImage(width, 1).getRaster(); WritableRaster destChannel = destRaster.createWritableChild(destRaster.getMinX(), destRaster.getMinY(), destRaster.getWidth(), destRaster.getHeight(), 0, 0, new int[] {c}); Raster srcChannel = clippedRow.createChild(clippedRow.getMinX(), 0, clippedRow.getWidth(), 1, 0, 0, new int[] {c}); switch (header.getBytesPerPixel()) { case 1: byte[] rowDataByte = ((DataBufferByte) rowRaster.getDataBuffer()).getData(c); readRowByte(height, srcRegion, scanlineOffsets, scanlineLengths, compression, xSub, ySub, c, rowDataByte, destChannel, srcChannel, y); break;
private static BufferedImage rawImage32toARGB(RawImage rawImage) { // Do as much as we can to not make an extra copy of the data. This is just a bunch of // classes that wrap's the raw byte array of the image data. DataBufferByte dataBuffer = new DataBufferByte(rawImage.data, rawImage.size); PixelInterleavedSampleModel sampleModel = new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, rawImage.width, rawImage.height, 4, rawImage.width * 4, BAND_OFFSETS_32); WritableRaster raster = Raster.createWritableRaster(sampleModel, dataBuffer, new Point(0, 0)); return new BufferedImage(new ThirtyTwoBitColorModel(rawImage), raster, false, EMPTY_HASH); }
checkReadParamBandSettings(param, rawType.getNumBands(), destination.getSampleModel().getNumBands()); int ySub = param != null ? param.getSourceYSubsampling() : 1; WritableRaster destRaster = clipToRect(destination.getRaster(), dstRegion, param != null ? param.getDestinationBands() : null); WritableRaster rowRaster = rawType.createBufferedImage(stripTileWidth, 1).getRaster(); Point offset = new Point((intersection.x - srcRegion.x) / xSub, (intersection.y - srcRegion.y) / ySub); switch (raster.getTransferType()) { case DataBuffer.TYPE_BYTE: normalizeColor(interpretation, ((DataBufferByte) raster.getDataBuffer()).getData()); break; case DataBuffer.TYPE_USHORT: normalizeColor(interpretation, ((DataBufferUShort) raster.getDataBuffer()).getData()); break; default: throw new IllegalStateException("Unsupported transfer type: " + raster.getTransferType()); Point offset = new Point(col - srcRegion.x, srcRow - srcRegion.y); normalizeColor(interpretation, ((DataBufferByte) raster.getDataBuffer()).getData()); Point offset = new Point(col - srcRegion.x, srcRow - srcRegion.y); normalizeColor(interpretation, ((DataBufferByte) raster.getDataBuffer()).getData());
File file = new File("path/to/file"); BufferedImage img = ImageIO.read(file); int width = img.getWidth(); int height = img.getHeight(); int[][] imgArr = new int[width][height]; Raster raster = img.getData(); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { imgArr[i][j] = raster.getSample(i, j, 0); } }
private BufferedImage resample(BufferedImage pSource, BufferedImage pDest, InterpolationFilter pFilter) { final int dstWidth = pDest.getWidth(); final int dstHeight = pDest.getHeight(); final int srcWidth = pSource.getWidth(); final int srcHeight = pSource.getHeight(); final int numChannels = raster.getNumBands(); final int[] channelMax = new int[numChannels]; for (int k = 0; k < numChannels; k++) { channelMax[k] = (1 << pSource.getColorModel().getComponentSize(k)) - 1; double pel = raster.getSample(contribX.p[0].pixel, k, channel); for (int j = 0; j < contribX.n; j++) { double pel2 = j == 0 ? pel : raster.getSample(contribX.p[j].pixel, k, channel); if (pel2 != pel) { bPelDelta = true; work.setSample(0, k, channel, weight); double pel = work.getSample(0, contribY[i].p[0].pixel, channel); double pel2 = j == 0 ? pel : work.getSample(0, contribY[i].p[j].pixel, channel); if (pel2 != pel) { bPelDelta = true;
bwidth = img.getWidth(); bheight = img.getHeight(); if (curType == 1) { hsX = 0; continue; } else { if (img.getType() != 2) { continue; } else { singleCursor = BufferUtils.createIntBuffer(img.getWidth() * img.getHeight()); DataBufferInt dataIntBuf = (DataBufferInt) img.getData().getDataBuffer(); singleCursor = IntBuffer.wrap(dataIntBuf.getData()); cursors.add(singleCursor);