public static BufferedImage createIndexedImage(int width, int height, byte[] data, IndexColorModel cm) { final int numSamples = data.length; SampleModel sm = cm.createCompatibleSampleModel(width, height); DataBuffer db = new DataBufferByte(data, numSamples); WritableRaster wr = WritableRaster.createWritableRaster(sm, db, null); return new BufferedImage(cm, wr, false, null); }
protected static BufferedImage createBufferedImage(int w, int h) { ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB); int[] nBits = {8, 8, 8, 8}; ColorModel cm = new ComponentColorModel(cs, nBits, true, false, Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE); SampleModel sm = cm.createCompatibleSampleModel(w, h); DataBufferByte db = new DataBufferByte(w * h * 4); WritableRaster r = WritableRaster.createWritableRaster(sm, db, new Point(0, 0)); BufferedImage bm = new BufferedImage(cm, r, false, null); return bm; }
new PixelInterleavedSampleModel( DataBuffer.TYPE_BYTE, width, height, 1, width, offsets); WritableRaster raster = WritableRaster.createWritableRaster(smodel, dbuf, _origin); return new BufferedImage(cmodel, raster, false, null);
new PixelInterleavedSampleModel( DataBuffer.TYPE_BYTE, width, height, 1, width, offsets); WritableRaster raster = WritableRaster.createWritableRaster(smodel, dbuf, _origin); return new BufferedImage(cmodel, raster, false, null);
/** Clone the image. */ public static BufferedImage cloneImage(RenderedImage rImg) { BufferedImage image; Raster r = rImg.getData(); WritableRaster wr = WritableRaster.createWritableRaster( r.getSampleModel(), null); rImg.copyData(wr); image = new BufferedImage( rImg.getColorModel(), wr, rImg.getColorModel().isAlphaPremultiplied(), null ); return image; }
protected static Mat createMat(BufferedImage img) { if (img != null) { Debug timer = Debug.startTimer("Mat create\t (%d x %d) from \n%s", img.getWidth(), img.getHeight(), img); Mat mat_ref = new Mat(img.getHeight(), img.getWidth(), CvType.CV_8UC4); timer.lap("init"); byte[] data; BufferedImage cvImg; ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB); int[] nBits = {8, 8, 8, 8}; ColorModel cm = new ComponentColorModel(cs, nBits, true, false, Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE); SampleModel sm = cm.createCompatibleSampleModel(img.getWidth(), img.getHeight()); DataBufferByte db = new DataBufferByte(img.getWidth() * img.getHeight() * 4); WritableRaster r = WritableRaster.createWritableRaster(sm, db, new Point(0, 0)); cvImg = new BufferedImage(cm, r, false, null); timer.lap("empty"); Graphics2D g = cvImg.createGraphics(); g.drawImage(img, 0, 0, null); g.dispose(); timer.lap("created"); data = ((DataBufferByte) cvImg.getRaster().getDataBuffer()).getData(); mat_ref.put(0, 0, data); Mat mat = new Mat(); timer.lap("filled"); Imgproc.cvtColor(mat_ref, mat, Imgproc.COLOR_RGBA2BGR, 3); timer.end(); return mat; } else { return null; } }
/** Converts the image to a buffered image. */ public static BufferedImage toBufferedImage(RenderedImage rImg) { BufferedImage image; if (rImg instanceof BufferedImage) { image = (BufferedImage) rImg; } else { Raster r = rImg.getData(); WritableRaster wr = WritableRaster.createWritableRaster( r.getSampleModel(), null); rImg.copyData(wr); image = new BufferedImage( rImg.getColorModel(), wr, rImg.getColorModel().isAlphaPremultiplied(), null ); } return image; } /** Clone the image. */
/** * Converts an Image to BufferedImage. If the Image is already a * BufferedImage, the same image is returned. * * @param rImg An Image. * @return A BufferedImage. */ public static BufferedImage toBufferedImage(RenderedImage rImg) { BufferedImage image; if (rImg instanceof BufferedImage) { image = (BufferedImage) rImg; } else { Raster r = rImg.getData(); WritableRaster wr = WritableRaster.createWritableRaster( r.getSampleModel(), null); rImg.copyData(wr); image = new BufferedImage( rImg.getColorModel(), wr, rImg.getColorModel().isAlphaPremultiplied(), null); } return image; }
case 1: final PlanarImage pImage = (PlanarImage) metaTileImage; final WritableRaster wTile = WritableRaster.createWritableRaster(pImage .getSampleModel().createCompatibleSampleModel(tileWidth, tileHeight), new Point(x, y));
PixelInterleavedSampleModel sm = new PixelInterleavedSampleModel( DataBuffer.TYPE_BYTE, bmw, bmh, 4, bmw * 4, bands); WritableRaster raster = WritableRaster.createWritableRaster(sm, new Point(0, 0)); bi = new BufferedImage(ccm, raster, false, null); } else {
/** * Creates a greyscale image from the given <code>{@link RasterDataNode}</code>. * <p/> * <p>The method uses the given raster data node's image information (an instance of <code>{@link * ImageInfo}</code>) to create the image. * * @param rasterDataNode the raster data node, must not be <code>null</code> * @param pm a monitor to inform the user about progress * * @return the color indexed image * * @throws IOException if the given raster data is not loaded and reload causes an I/O error * @see org.esa.beam.framework.datamodel.RasterDataNode#getImageInfo() */ public static BufferedImage createColorIndexedImage(final RasterDataNode rasterDataNode, ProgressMonitor pm) throws IOException { Guardian.assertNotNull("rasterDataNode", rasterDataNode); final int width = rasterDataNode.getSceneRasterWidth(); final int height = rasterDataNode.getSceneRasterHeight(); final ImageInfo imageInfo = rasterDataNode.getImageInfo(ProgressMonitor.NULL); final double newMin = imageInfo.getColorPaletteDef().getMinDisplaySample(); final double newMax = imageInfo.getColorPaletteDef().getMaxDisplaySample(); final byte[] colorIndexes = rasterDataNode.quantizeRasterData(newMin, newMax, 1.0, pm); final IndexColorModel cm = imageInfo.createIndexColorModel(rasterDataNode); final SampleModel sm = cm.createCompatibleSampleModel(width, height); final DataBuffer db = new DataBufferByte(colorIndexes, colorIndexes.length); final WritableRaster wr = WritableRaster.createWritableRaster(sm, db, null); return new BufferedImage(cm, wr, false, null); }
public static RenderedImage createRenderedImage(int width, int height, ProductData data) { final int dataBufferType = ImageManager.getDataBufferType(data.getType()); DataBuffer db; if (dataBufferType == DataBuffer.TYPE_BYTE) { db = new DataBufferByte((byte[]) data.getElems(), data.getNumElems()); } else if (dataBufferType == DataBuffer.TYPE_USHORT) { db = new DataBufferUShort((short[]) data.getElems(), data.getNumElems()); } else if (dataBufferType == DataBuffer.TYPE_SHORT) { db = new DataBufferShort((short[]) data.getElems(), data.getNumElems()); } else if (dataBufferType == DataBuffer.TYPE_INT) { db = new DataBufferInt((int[]) data.getElems(), data.getNumElems()); } else if (dataBufferType == DataBuffer.TYPE_FLOAT) { db = new DataBufferFloat((float[]) data.getElems(), data.getNumElems()); } else if (dataBufferType == DataBuffer.TYPE_DOUBLE) { db = new DataBufferDouble((double[]) data.getElems(), data.getNumElems()); } else { throw new IllegalStateException("illegal image data buffer type: " + dataBufferType); } SampleModel sampleModel = createSingleBandedSampleModel(dataBufferType, width, height); final ColorModel colorModel = PlanarImage.createColorModel(sampleModel); final WritableRaster raster = WritableRaster.createWritableRaster(sampleModel, db, new Point(0, 0)); // final TiledImage image = new TiledImage(0, 0, width, height, 512, 512, sampleModel, colorModel); // final BufferedImage image = new BufferedImage(colorModel, raster, false, null); // image. return new MyRenderedImage(raster, colorModel); }
private Band createBand(String name, int dataType, int w, int h, float[] floats, Double noDataValue) { final SampleModel sm = new PixelInterleavedSampleModel(DataBuffer.TYPE_FLOAT, w, h, 1, w, new int[]{0}); final ColorModel cm = PlanarImage.createColorModel(sm); final TiledImage sourceImage = new TiledImage(0, 0, w, h, 0, 0, sm, cm); sourceImage.setData(WritableRaster.createWritableRaster(sm, new DataBufferFloat(floats, w * h), null)); final Band band = new Band(name, dataType, w, h); band.setSourceImage(sourceImage); if (noDataValue != null) { band.setNoDataValueUsed(true); band.setNoDataValue(noDataValue); } return band; } }
sourceData[10] = 12; sourceData[15] = -3; sourceImage.setData(WritableRaster.createWritableRaster(sm, new DataBufferShort(sourceData, width * height), null)); band.setSourceImage(sourceImage);
sourceData[10] = 12; sourceData[15] = -3; sourceImage.setData(WritableRaster.createWritableRaster(sm, new DataBufferInt(sourceData, width * height), null)); band.setSourceImage(sourceImage);
sourceData[10] = 0.3f; sourceData[15] = 2.5f; sourceImage.setData(WritableRaster.createWritableRaster(sm, new DataBufferFloat(sourceData, width * height), null)); band.setSourceImage(sourceImage);
sourceData[10] = 12; sourceData[15] = -3; sourceImage.setData(WritableRaster.createWritableRaster(sm, new DataBufferShort(sourceData, width * height), null)); band.setSourceImage(sourceImage);
sourceData[10] = 0.3f; sourceData[15] = 2.5f; sourceImage.setData(WritableRaster.createWritableRaster(sm, new DataBufferFloat(sourceData, width * height), null)); band.setSourceImage(sourceImage);
sourceData[10] = 0; sourceData[15] = -3; sourceImage.setData(WritableRaster.createWritableRaster(sm, new DataBufferByte(sourceData, width * height), null)); band.setSourceImage(sourceImage);
sourceData[10] = 0; sourceData[15] = -3; sourceImage.setData(WritableRaster.createWritableRaster(sm, new DataBufferInt(sourceData, width * height), null)); band.setSourceImage(sourceImage);