private Object extractImageData(BufferedImage img){ DataBuffer buf = img.getRaster().getDataBuffer(); switch (buf.getDataType()){ case DataBuffer.TYPE_BYTE: DataBufferByte byteBuf = (DataBufferByte) buf; return byteBuf.getData(); case DataBuffer.TYPE_USHORT: DataBufferUShort shortBuf = (DataBufferUShort) buf; return shortBuf.getData(); } return null; }
public void recycleTile(Raster tile) { DataBuffer db = tile.getDataBuffer(); Long key = getKey(db.getDataType(), db.getNumBanks(), db.getSize()); if (LOGGER.isLoggable(Level.FINER)) { LOGGER.log( Level.FINER, "Recycling tile hit on type:{1}, banks: {2}, arrayLength: {3}", new Object[] {db.getDataType(), db.getNumBanks(), db.getSize()}); } ConcurrentLinkedQueue<SoftReference<?>> arrays = get(key); if (arrays == null) { arrays = new ConcurrentLinkedQueue<SoftReference<?>>(); arrays.add(getBankReference(db)); put(key, arrays); return; } else { arrays.add(getBankReference(db)); } }
switch (buffer.getDataType()) throw new AssertionError("Unexpected buffer element type: " + buffer.getDataType());
switch (dataBuf.getDataType()) {
((long) db.getDataType() << 56) | ((long) db.getNumBanks() << 32) | (long) db.getSize()); LOGGER.fine( "Recycling array for: " + db.getDataType() + " " + db.getNumBanks() memoryUsed += getDataBankSize(db.getDataType(), db.getNumBanks(), db.getSize());
/** * Constructs a grid coverage from the specified {@linkplain WritableRaster raster} and * "{@linkplain GridGeometry2D#getGridToCoordinateSystem grid to CRS}" transform. * * @param name The grid coverage name. * @param raster The raster. * @param crs The coordinate reference system. This specifies the CRS used when accessing a grid * coverage with the {@code evaluate} methods. The number of dimensions must matches the * number of target dimensions of {@code gridToCRS}. * @param gridToCRS The math transform from grid to coordinate reference system. * @param bands Sample dimensions for each image band, or {@code null} for default sample * dimensions. If non-null, then this array's length must matches the number of bands in * {@code image}. * @return The new grid coverage. * @since 2.2 */ public GridCoverage2D create( final CharSequence name, final WritableRaster raster, final CoordinateReferenceSystem crs, final MathTransform gridToCRS, GridSampleDimension[] bands) { if (bands == null) { bands = RenderedSampleDimension.create(name, raster, null, null, null, null, null); } final ColorModel model = bands[0].getColorModel(0, bands.length, raster.getDataBuffer().getDataType()); final RenderedImage image = new BufferedImage(model, raster, false, null); return create(name, image, crs, gridToCRS, bands, null, null); }
bands[0].getColorModel(0, bands.length, raster.getDataBuffer().getDataType()); final RenderedImage image = new BufferedImage(model, raster, false, null); return create(name, image, envelope, bands, null, null);
/** * Returns the (A)RGB equivalent of the given raster, using the given AWT color space * to perform the conversion. * @param raster the source raster * @param colorSpace the AWT * @return an (A)RGB buffered image */ protected BufferedImage toRGBImageAWT(WritableRaster raster, ColorSpace colorSpace) { // // WARNING: this method is performance sensitive, modify with care! // // ICC Profile color transforms are only fast when performed using ColorConvertOp ColorModel colorModel = new ComponentColorModel(colorSpace, false, false, Transparency.OPAQUE, raster.getDataBuffer().getDataType()); BufferedImage src = new BufferedImage(colorModel, raster, false, null); BufferedImage dest = new BufferedImage(raster.getWidth(), raster.getHeight(), BufferedImage.TYPE_INT_RGB); ColorConvertOp op = new ColorConvertOp(null); op.filter(src, dest); return dest; }
InvertedRaster(final Raster raster) { super(raster.getSampleModel(), new DataBuffer(raster.getDataBuffer().getDataType(), raster.getDataBuffer().getSize()) { private final DataBuffer delegate = raster.getDataBuffer(); @Override public int getElem(final int bank, final int i) { return (255 - delegate.getElem(bank, i)); } @Override public void setElem(int bank, int i, int val) { throw new UnsupportedOperationException("setElem"); } }, new Point()); } }
private DataBuffer createDataBufferFilledWithNoDataValues( WritableRaster raster, int pixelSize) { int dataType = raster.getDataBuffer().getDataType();
switch (dataBuf.getDataType()) {
switch (raster.getDataBuffer().getDataType()) throw new IOException("Data type " + raster.getDataBuffer().getDataType() + " not implemented");
throw new IIOException("DataBuffer type " + buf.getDataType() + " not supported");
if (dBuf.getDataType() == DataBuffer.TYPE_BYTE)
/** * Returns a <code>SoftReference</code> to the internal bank data of the <code>DataBuffer</code> * . */ private static Object getBankReference(DataBuffer db) { Object array = null; switch (db.getDataType()) { case DataBuffer.TYPE_BYTE: array = ((DataBufferByte) db).getBankData(); break; case DataBuffer.TYPE_USHORT: array = ((DataBufferUShort) db).getBankData(); break; case DataBuffer.TYPE_SHORT: array = ((DataBufferShort) db).getBankData(); break; case DataBuffer.TYPE_INT: array = ((DataBufferInt) db).getBankData(); break; case DataBuffer.TYPE_FLOAT: array = DataBufferUtils.getBankDataFloat(db); break; case DataBuffer.TYPE_DOUBLE: array = DataBufferUtils.getBankDataDouble(db); break; default: throw new UnsupportedOperationException(""); } return array; }
switch (buffer.getDataType()) { case DataBuffer.TYPE_BYTE: rowRaster.setDataElements(0, 0, raster.createChild(0, y, raster.getWidth(), 1, 0, 0, null));
final DataBuffer dataBuffer = tile.getDataBuffer(); switch (dataBuffer.getDataType()) { case DataBuffer.TYPE_BYTE: throw new IllegalArgumentException("Not implemented for data type: " + dataBuffer.getDataType()); throw new IllegalArgumentException("Not implemented for data type: " + dataBuffer.getDataType());
case DataBuffer.TYPE_SHORT: short[] rowDataShort = dataBuffer.getDataType() == DataBuffer.TYPE_USHORT ? ((DataBufferUShort) dataBuffer).getData(band) : ((DataBufferShort) dataBuffer).getData(band);
name, raster, minValues, maxValues, units, colors, hints); final ColorModel model = bands[0].getColorModel(0, bands.length, raster.getDataBuffer().getDataType()); final RenderedImage image = new BufferedImage(model, raster, false, null); return create(name, image, crs, gridToCRS, bands, null, null);
private void nullifyUnusedBits(int bitsStored, BufferedImage bi) { DataBuffer db = bi.getRaster().getDataBuffer(); switch (db.getDataType()) { case DataBuffer.TYPE_USHORT: nullifyUnusedBits(bitsStored, ((DataBufferUShort) db).getData()); break; case DataBuffer.TYPE_SHORT: nullifyUnusedBits(bitsStored, ((DataBufferShort) db).getData()); break; } }