Arrays.fill(intDataArray[i], noDataValue.intValue()); Arrays.fill(floatDataArray[i], noDataValue.floatValue()); dataBuffer = new DataBufferFloat(floatDataArray, dataBufferSize); break; case DataBuffer.TYPE_DOUBLE: Arrays.fill(doubleDataArray[i], noDataValue.doubleValue()); dataBuffer = new DataBufferDouble(doubleDataArray, dataBufferSize); break; Arrays.fill(shortDataArray[i], noDataValue.shortValue()); dataBuffer = new DataBufferShort(shortDataArray, dataBufferSize); break; Arrays.fill(byteDataArray[i], noDataValue.byteValue()); dataBuffer = new DataBufferByte(byteDataArray, dataBufferSize); break; Arrays.fill(ushortDataArray[i], noDataValue.shortValue()); dataBuffer = new DataBufferUShort(ushortDataArray, dataBufferSize); break;
for (int i = 0; i < offsets.length; i++) { final int offset = offsets[i]; Arrays.fill(data.getData(i), offset, offset + size, n); for (int i = 0; i < offsets.length; i++) { final int offset = offsets[i]; Arrays.fill(data.getData(i), offset, offset + size, n); for (int i = 0; i < offsets.length; i++) { final int offset = offsets[i]; Arrays.fill(data.getData(i), offset, offset + size, n); for (int i = 0; i < offsets.length; i++) { final int offset = offsets[i]; Arrays.fill(data.getData(i), offset, offset + size, n); for (int i = 0; i < offsets.length; i++) { final int offset = offsets[i]; Arrays.fill(data.getData(i), offset, offset + size, n); for (int i = 0; i < offsets.length; i++) { final int offset = offsets[i]; Arrays.fill(data.getData(i), offset, offset + size, n);
case DataBuffer.TYPE_BYTE: DataBufferByte dataBuffer = (DataBufferByte) currentTile.getDataBuffer(); byte[][] bankData = dataBuffer.getBankData(); tileReader.getTile(readerTileX, readerTileY, bankData); (DataBufferUShort) currentTile.getDataBuffer(); short[][] bankData = dataBuffer.getBankData(); tileReader.getTile(readerTileX, readerTileY, bankData); case DataBuffer.TYPE_SHORT: DataBufferShort dataBuffer = (DataBufferShort) currentTile.getDataBuffer(); short[][] bankData = dataBuffer.getBankData(); tileReader.getTile(readerTileX, readerTileY, bankData); DataBufferInt dataBuffer = (DataBufferInt) currentTile.getDataBuffer(); int[][] bankData = dataBuffer.getBankData(); tileReader.getTile(readerTileX, readerTileY, bankData); DataBufferFloat dataBuffer = (DataBufferFloat) currentTile.getDataBuffer(); float[][] bankData = dataBuffer.getBankData(); tileReader.getTile(readerTileX, readerTileY, bankData); (DataBufferDouble) currentTile.getDataBuffer(); double[][] bankData = dataBuffer.getBankData(); tileReader.getTile(readerTileX, readerTileY, bankData);
switch (type) { case DataBuffer.TYPE_BYTE: bdata = ((DataBufferByte)data).getData(bank); stream.write(bdata, 0, bdata.length); break; case DataBuffer.TYPE_SHORT: sdata = ((DataBufferShort)data).getData(bank); stream.writeShorts(sdata, 0, sdata.length); break; case DataBuffer.TYPE_USHORT: sdata = ((DataBufferUShort)data).getData(bank); stream.writeShorts(sdata, 0, sdata.length); break; case DataBuffer.TYPE_INT: idata = ((DataBufferInt)data).getData(bank); stream.writeInts(idata, 0, idata.length); break; case DataBuffer.TYPE_FLOAT: fdata = ((DataBufferFloat)data).getData(bank); stream.writeFloats(fdata, 0, fdata.length); break; case DataBuffer.TYPE_DOUBLE: ddata = ((DataBufferDouble)data).getData(bank); stream.writeDoubles(ddata, 0, ddata.length); break; switch (type) { case DataBuffer.TYPE_BYTE: bdata = ((DataBufferByte)data).getData();
throws IOException { DataBuffer dataBuffer = tileRowRaster.getDataBuffer(); int bands = dataBuffer.getNumBanks(); boolean banded = bands > 1; switch (tileRowRaster.getTransferType()) { case DataBuffer.TYPE_BYTE: int bank = banded ? ((BandedSampleModel) tileRowRaster.getSampleModel()).getBankIndices()[band] : band; byte[] rowDataByte = ((DataBufferByte) dataBuffer).getData(bank); WritableRaster destChannel = banded ? raster.createWritableChild(raster.getMinX(), raster.getMinY(), raster.getWidth(), raster.getHeight(), 0, 0, new int[] {band}) ? ((DataBufferUShort) dataBuffer).getData(band) : ((DataBufferShort) dataBuffer).getData(band); case DataBuffer.TYPE_INT: int[] rowDataInt = ((DataBufferInt) dataBuffer).getData(band); float[] rowDataFloat = ((DataBufferFloat) tileRowRaster.getDataBuffer()).getData(band);
DataBuffer outBuffer = raster.getDataBuffer(); int x = -raster.getSampleModelTranslateX(); int y = -raster.getSampleModelTranslateY(); int step = model.getWidth() * model.getNumBands(); int channels = model.getNumBands(); byte[] a = ((DataBufferByte) outBuffer).getData(); copy(data, step, ByteBuffer.wrap(a, start, a.length - start), step, false); short[] a = ((DataBufferShort) outBuffer).getData(); copy(data.asShortBuffer(), step / 2, ShortBuffer.wrap(a, start, a.length - start), step, true); short[] a = ((DataBufferUShort) outBuffer).getData(); copy(data.asShortBuffer(), step / 2, ShortBuffer.wrap(a, start, a.length - start), step, false); int[] a = ((DataBufferInt) outBuffer).getData(); copy(data.asIntBuffer(), step / 4, IntBuffer.wrap(a, start, a.length - start), step); float[] a = ((DataBufferFloat) outBuffer).getData(); copy(data.asFloatBuffer(), step / 4, FloatBuffer.wrap(a, start, a.length - start), step); double[] a = ((DataBufferDouble) outBuffer).getData(); copy(data.asDoubleBuffer(), step / 8, DoubleBuffer.wrap(a, start, a.length - start), step);
public static ImageCV toMat(RenderedImage img, Rectangle region, boolean toBGR) { Raster raster = region == null ? img.getData() : img.getData(region); DataBuffer buf = raster.getDataBuffer(); int[] samples = raster.getSampleModel().getSampleSize(); int[] offsets; if (raster.getSampleModel() instanceof ComponentSampleModel) { b.put(0, 0, ((DataBufferByte) buf).getData(2)); Mat g = new Mat(raster.getHeight(), raster.getWidth(), CvType.CV_8UC1); g.put(0, 0, ((DataBufferByte) buf).getData(1)); ImageCV r = new ImageCV(raster.getHeight(), raster.getWidth(), CvType.CV_8UC1); r.put(0, 0, ((DataBufferByte) buf).getData(0)); mat.put(0, 0, ((DataBufferUShort) buf).getData()); return mat; mat.put(0, 0, ((DataBufferShort) buf).getData()); return mat; mat.put(0, 0, ((DataBufferInt) buf).getData()); return mat; mat.put(0, 0, ((DataBufferFloat) buf).getData()); return mat; mat.put(0, 0, ((DataBufferDouble) buf).getData()); return mat;
final byte[] src = ((DataBufferByte) databuff).getData(bankIndices); System.arraycopy(src, srcRastId, (byte[]) buffer, destId, readLength); break; final short[] src = ((DataBufferUShort) databuff).getData(bankIndices); System.arraycopy(src, srcRastId, (short[]) buffer, destId, readLength); break; final short[] src = ((DataBufferShort) databuff).getData(bankIndices); System.arraycopy(src, srcRastId, (short[]) buffer, destId, readLength); break; final int[] src = ((DataBufferInt) databuff).getData(bankIndices); System.arraycopy(src, srcRastId, (int[]) buffer, destId, readLength); break; final float[] src = ((DataBufferFloat) databuff).getData(bankIndices); System.arraycopy(src, srcRastId, (float[]) buffer, destId, readLength); break; final double[] src = ((DataBufferDouble) databuff).getData(bankIndices); System.arraycopy(src, srcRastId, (double[]) buffer, destId, readLength); break;
DataBufferByte dbb = (DataBufferByte)db; byteData = dbb.getData(); pixelBitStride = csm.getPixelStride()*8; isSupportedType = true; DataBufferUShort dbus = (DataBufferUShort)db; DataBufferShort dbs = (DataBufferShort)db; DataBufferInt dbi = (DataBufferInt)db; DataBufferFloat dbf = (DataBufferFloat)db; floatData = dbf.getData(); pixelBitStride = csm.getPixelStride()*32; isSupportedType = true; DataBufferByte dbb = (DataBufferByte)db; intData = dbi.getData(); isSupportedType = true; DataBufferByte dbb = (DataBufferByte)db; DataBufferUShort dbus = (DataBufferUShort)db; DataBufferInt dbi = (DataBufferInt)db;
ImageTypeSpecifier imageType) { if (imageType == null) { if (raster.getDataBuffer().getDataType() == DataBuffer.TYPE_BYTE) imageType = ImageTypeSpecifier.createGrayscale(8, DataBuffer.TYPE_BYTE, false); .getWidth(), raster.getHeight()); if (raster.getDataBuffer().getDataType() == DataBuffer.TYPE_USHORT short[] shortData = ((DataBufferUShort) raster.getDataBuffer()) .getData(); byte[] byteData = ((DataBufferByte) bufImage.getWritableTile(0, 0) .getDataBuffer()).getData(); ImageIOUtils.shortToByteBuffer(shortData, byteData, 1, raster .getNumBands()); float[] floatData = ((DataBufferFloat) raster.getDataBuffer()) .getData(); byte[] byteData = ((DataBufferByte) bufImage.getWritableTile(0, 0) .getDataBuffer()).getData(); ImageIOUtils.floatToByteBuffer(floatData, byteData, 1, raster .getNumBands());
DataBufferByte dbb = (DataBufferByte)db; DataBufferUShort dbus = (DataBufferUShort)db; DataBufferShort dbs = (DataBufferShort)db; DataBufferInt dbi = (DataBufferInt)db; DataBufferFloat dbf = (DataBufferFloat)db; floatData = dbf.getData(); pixelBitStride = csm.getPixelStride()*32; isSupportedType = true; DataBufferDouble dbf = (DataBufferDouble)db; DataBufferByte dbb = (DataBufferByte)db; intData = dbi.getData(); isSupportedType = true; DataBufferByte dbb = (DataBufferByte)db; DataBufferUShort dbus = (DataBufferUShort)db; DataBufferInt dbi = (DataBufferInt)db;
static void writeTile(ImageOutputStream stream, Raster tile) throws IOException { if (tile.getSampleModel().getNumDataElements() != tile.getDataBuffer().getSize()) { // todo - log error throw new IllegalStateException(); } DataBuffer dataBuffer = tile.getDataBuffer(); if (dataBuffer instanceof DataBufferByte) { byte[] data = ((DataBufferByte) dataBuffer).getData(); stream.write(data, dataBuffer.getOffset(), dataBuffer.getSize()); } else if (dataBuffer instanceof DataBufferShort) { short[] data = ((DataBufferShort) dataBuffer).getData(); stream.writeShorts(data, dataBuffer.getOffset(), dataBuffer.getSize()); } else if (dataBuffer instanceof DataBufferInt) { int[] data = ((DataBufferInt) dataBuffer).getData(); stream.writeInts(data, dataBuffer.getOffset(), dataBuffer.getSize()); } else if (dataBuffer instanceof DataBufferFloat) { float[] data = ((DataBufferFloat) dataBuffer).getData(); stream.writeFloats(data, dataBuffer.getOffset(), dataBuffer.getSize()); } else if (dataBuffer instanceof DataBufferDouble) { double[] data = ((DataBufferDouble) dataBuffer).getData(); stream.writeDoubles(data, dataBuffer.getOffset(), dataBuffer.getSize()); } else { throw new IllegalStateException(); } }
raster = Raster.createInterleavedRaster(db, tileWidth*tilesAcross, tileLength*tilesDown, tileWidth*tilesAcross, 1, off, null); raster.setDataElements(xoff, yoff, tileWidth, tileLength, ArrayUtils.toShortArray(temp, endian == IOUtils.BIG_ENDIAN)); } else { DataBuffer tileDataBuffer = new DataBufferByte(temp, temp.length); WritableRaster tileRaster = Raster.createPackedRaster(tileDataBuffer, tileWidth, tileLength, bitsPerSample, null); raster.setDataElements(xoff, yoff, tileRaster); floats[j] = ArrayUtils.toFloatArray(rgb[j], endian == IOUtils.BIG_ENDIAN); tileDatabuffer = new DataBufferFloat(floats, floats[0].length); dataBufferType = DataBuffer.TYPE_FLOAT; } else if(bitsPerSample == 64) { for(int j = 0; j < samplesPerPixel; j++) doubles[j] = ArrayUtils.toDoubleArray(rgb[j], endian == IOUtils.BIG_ENDIAN); tileDatabuffer = new DataBufferDouble(doubles, doubles[0].length); dataBufferType = DataBuffer.TYPE_DOUBLE; } else { } else { if(bitsPerSample == 16) { tileDatabuffer = new DataBufferUShort(new short[][]{ArrayUtils.toShortArray(rgb[0], endian == IOUtils.BIG_ENDIAN), ArrayUtils.toShortArray(rgb[1], endian == IOUtils.BIG_ENDIAN), ArrayUtils.toShortArray(rgb[2], endian == IOUtils.BIG_ENDIAN)},
float[][] imgData = new float[imgHeight][imgWidth]; DataBuffer dataBuffer = img.getData().getDataBuffer(); switch (dataBuffer.getDataType()) { case DataBuffer.TYPE_BYTE: { DataBufferByte dataBufferByte = (DataBufferByte) dataBuffer; byte[] values = dataBufferByte.getData(); short[] values = dataBufferUShort.getData(); float[] values = dataBufferFloat.getData();
rowDataByte = ((DataBufferByte) rowRaster.getDataBuffer()).getData(); break; case DataBuffer.TYPE_USHORT: rowDataUShort = ((DataBufferUShort) rowRaster.getDataBuffer()).getData(); break; case DataBuffer.TYPE_FLOAT: rowDataFloat = ((DataBufferFloat) rowRaster.getDataBuffer()).getData(); break; default:
public static BufferedImage imageFromArray(float[] input, int width, int height) { SampleModel sampleModel = new PixelInterleavedSampleModel(DataBuffer.TYPE_FLOAT, width, height, 1, width, new int[]{0}); ColorSpace colorSpace = ColorSpace.getInstance(ColorSpace.CS_GRAY); ColorModel colorModel = new ComponentColorModel(colorSpace, false, false, Transparency.TRANSLUCENT, DataBuffer.TYPE_FLOAT); DataBuffer buffer = new DataBufferFloat(width * height * 1); WritableRaster raster = Raster.createWritableRaster(sampleModel, buffer, null); raster.setPixels(0, 0, width, height, input); return new BufferedImage(colorModel, raster, colorModel.isAlphaPremultiplied(), null); }
ByteBuffer rasterByteBuf = ByteBuffer .wrap(((DataBufferByte) imRas.getDataBuffer()) .getData()); rasterByteBuf.put(bandBuf); break; ShortBuffer rasterShortBuf = ShortBuffer .wrap(((DataBufferUShort) imRas.getDataBuffer()) .getData()); rasterShortBuf.put(bandBuf.asShortBuffer()); break; FloatBuffer rasterFloatBuf = FloatBuffer .wrap(((DataBufferFloat) imRas.getDataBuffer()) .getData()); rasterFloatBuf.put(bandBuf.asFloatBuffer()); break; DoubleBuffer rasterDoubleBuf = DoubleBuffer .wrap(((DataBufferDouble) imRas.getDataBuffer()) .getData()); rasterDoubleBuf.put(bandBuf.asDoubleBuffer()); break;
Rectangle rect = new Rectangle(x1, y1, x2 - x1 + 1, y2 - y1 + 1); Raster latLonData = latLonImage.getData(rect); ComponentSampleModel sampleModel = (ComponentSampleModel) latLonData.getSampleModel(); DataBufferFloat dataBuffer = (DataBufferFloat) latLonData.getDataBuffer(); float[][] bankData = dataBuffer.getBankData(); int sampleModelTranslateX = latLonData.getSampleModelTranslateX(); int sampleModelTranslateY = latLonData.getSampleModelTranslateY(); int scanlineStride = sampleModel.getScanlineStride();
PlanarImage opImage; DataBuffer buffer = new DataBufferFloat(widthAnglesTile*heightAnglesTile*1); WritableRaster raster = Raster.createWritableRaster(sampleModel, buffer, null); S2BandAnglesGrid bandAnglesGrid = null; try { mosaicOp.setRenderingHints(hints2); DataBuffer dataBuffer = mosaicOp.getData().getDataBuffer(); float[] array = new float[mosaicOp.getWidth()* mosaicOp.getHeight()]; for (int i = 0; i< mosaicOp.getWidth()* mosaicOp.getHeight(); i++) {
/** * {@inheritDoc }. */ @Override protected void updateCurrentRaster(int tileX, int tileY) { super.updateCurrentRaster(tileX, tileY); this.currentDataArray = ((DataBufferFloat)currentRaster.getDataBuffer()).getData(); }