/** * 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; }
public byte[][] getByteData() { return data instanceof DataBufferByte ? ((DataBufferByte) data).getBankData() : null; }
byte[][] bankData = dataBuffer.getBankData(); tileReader.getTile(readerTileX, readerTileY, bankData);
/** Extracts pixel data as arrays of unsigned bytes, one per channel. */ public static byte[][] getBytes(WritableRaster r, int x, int y, int w, int h) { if (canUseBankDataDirectly(r, DataBuffer.TYPE_BYTE, DataBufferByte.class) && x == 0 && y == 0 && w == r.getWidth() && h == r.getHeight()) { return ((DataBufferByte) r.getDataBuffer()).getBankData(); } int c = r.getNumBands(); byte[][] samples = new byte[c][w * h]; int[] buf = new int[w * h]; for (int i=0; i<c; i++) { r.getSamples(x, y, w, h, i, buf); for (int j=0; j<buf.length; j++) samples[i][j] = (byte) buf[j]; } return samples; }
/** Extracts pixel data as arrays of unsigned bytes, one per channel. */ public static byte[][] getBytes(WritableRaster r, int x, int y, int w, int h) { if (canUseBankDataDirectly(r, DataBuffer.TYPE_BYTE, DataBufferByte.class) && x == 0 && y == 0 && w == r.getWidth() && h == r.getHeight()) { return ((DataBufferByte) r.getDataBuffer()).getBankData(); } int c = r.getNumBands(); byte[][] samples = new byte[c][w * h]; int[] buf = new int[w * h]; for (int i=0; i<c; i++) { r.getSamples(x, y, w, h, i, buf); for (int j=0; j<buf.length; j++) samples[i][j] = (byte) buf[j]; } return samples; }
private void readFrame() throws IOException { initBufferedImage(); WritableRaster raster = bi.getRaster(); DataBuffer dataBuffer = raster.getDataBuffer(); switch (dataBuffer.getDataType()) { case DataBuffer.TYPE_SHORT: readFully(((DataBufferShort) dataBuffer).getData()); break; case DataBuffer.TYPE_USHORT: readFully(((DataBufferUShort) dataBuffer).getData()); break; case DataBuffer.TYPE_BYTE: readFully(((DataBufferByte) dataBuffer).getBankData()); break; } }
/** Extracts pixel data as arrays of unsigned bytes, one per channel. */ public static byte[][] getBytes(WritableRaster r, int x, int y, int w, int h) { if (canUseBankDataDirectly(r, DataBuffer.TYPE_BYTE, DataBufferByte.class) && x == 0 && y == 0 && w == r.getWidth() && h == r.getHeight()) { return ((DataBufferByte) r.getDataBuffer()).getBankData(); } int c = r.getNumBands(); byte[][] samples = new byte[c][w * h]; int[] buf = new int[w * h]; for (int i=0; i<c; i++) { r.getSamples(x, y, w, h, i, buf); for (int j=0; j<buf.length; j++) samples[i][j] = (byte) buf[j]; } return samples; }
/** Extracts pixel data as arrays of unsigned bytes, one per channel. */ public static byte[][] getBytes(final WritableRaster r, final int x, final int y, final int w, final int h) { if (canUseBankDataDirectly(r, DataBuffer.TYPE_BYTE, DataBufferByte.class) && x == 0 && y == 0 && w == r.getWidth() && h == r.getHeight()) { return ((DataBufferByte) r.getDataBuffer()).getBankData(); } final int c = r.getNumBands(); final byte[][] samples = new byte[c][w * h]; final int[] buf = new int[w * h]; for (int i = 0; i < c; i++) { r.getSamples(x, y, w, h, i, buf); for (int j = 0; j < buf.length; j++) samples[i][j] = (byte) buf[j]; } return samples; }
/** Extracts pixel data as arrays of unsigned bytes, one per channel. */ public static byte[][] getBytes(final WritableRaster r, final int x, final int y, final int w, final int h) { if (canUseBankDataDirectly(r, DataBuffer.TYPE_BYTE, DataBufferByte.class) && x == 0 && y == 0 && w == r.getWidth() && h == r.getHeight()) { return ((DataBufferByte) r.getDataBuffer()).getBankData(); } final int c = r.getNumBands(); final byte[][] samples = new byte[c][w * h]; final int[] buf = new int[w * h]; for (int i = 0; i < c; i++) { r.getSamples(x, y, w, h, i, buf); for (int j = 0; j < buf.length; j++) samples[i][j] = (byte) buf[j]; } return samples; }
private void read(DataBuffer db) throws IOException { switch (db.getDataType()) { case DataBuffer.TYPE_BYTE: read(((DataBufferByte) db).getBankData()); break; case DataBuffer.TYPE_USHORT: read(((DataBufferUShort) db).getData()); break; case DataBuffer.TYPE_SHORT: read(((DataBufferShort) db).getData()); break; default: throw new IllegalArgumentException( UNSUPPORTED_DATA_TYPE + db.getDataType()); } }
private void read(DataBuffer db) throws IOException { switch (db.getDataType()) { case DataBuffer.TYPE_BYTE: read(((DataBufferByte) db).getBankData()); break; case DataBuffer.TYPE_USHORT: read(((DataBufferUShort) db).getData()); break; case DataBuffer.TYPE_SHORT: read(((DataBufferShort) db).getData()); break; default: throw new IllegalArgumentException( UNSUPPORTED_DATA_TYPE + db.getDataType()); } }
private void writeFrame() throws IOException { WritableRaster raster = bi.getRaster(); SampleModel sm = raster.getSampleModel(); DataBuffer db = raster.getDataBuffer(); switch (db.getDataType()) { case DataBuffer.TYPE_BYTE: write(sm, ((DataBufferByte) db).getBankData()); break; case DataBuffer.TYPE_USHORT: write(sm, ((DataBufferUShort) db).getData()); break; case DataBuffer.TYPE_SHORT: write(sm, ((DataBufferShort) db).getData()); break; case DataBuffer.TYPE_INT: write(sm, ((DataBufferInt) db).getData()); break; default: throw new UnsupportedOperationException("Unsupported Datatype: " + db.getDataType()); } }
/** * 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; }
/** * 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; }
@Test public void testExceptionBlank111() throws Exception { String wms111 = "wms?LAYERS=cite%3ALakes&STYLES=&FORMAT=image%2Fpng&TILED=true&TILESORIGIN=-0.0018%2C0.0006" + "&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&CRS=EPSG%3A4326&BBOX=-0.0018,0.0006,0.0007,0.0031&WIDTH=256&HEIGHT=256" + "&EXCEPTIONS=application/vnd.ogc.se_blank"; BufferedImage blankimage111 = ImageIO.read( getClass().getResourceAsStream("/ServiceException/vnd.ogc.se_blank.png")); BufferedImage image111 = getAsImage(wms111, "image/png"); // compare the general structure assertEquals(image111.getWidth(), blankimage111.getWidth()); assertEquals(image111.getHeight(), blankimage111.getHeight()); assertEquals(image111.getColorModel(), blankimage111.getColorModel()); assertEquals(image111.getSampleModel(), blankimage111.getSampleModel()); // compare the actual data DataBufferByte blankdb111 = (DataBufferByte) blankimage111.getData().getDataBuffer(); DataBufferByte db111 = (DataBufferByte) image111.getData().getDataBuffer(); byte[][] blankbankData111 = blankdb111.getBankData(); byte[][] bankData111 = db111.getBankData(); for (int i = 0; i < bankData111.length; i++) { assertTrue(Arrays.equals(blankbankData111[i], bankData111[i])); } } }
public BufferedImage readFrame(int frameIndex) throws IOException { if (iis == null) iis = new FileImageInputStream(file); if (decompressor != null) return decompressFrame(iis, frameIndex); iis.setByteOrder(pixeldata.bigEndian() ? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN); iis.seek(pixeldata.offset() + frameLength * frameIndex); DataBuffer db = bi.getRaster().getDataBuffer(); switch (db.getDataType()) { case DataBuffer.TYPE_BYTE: byte[][] data = ((DataBufferByte) db).getBankData(); for (byte[] bs : data) iis.readFully(bs); if (pixeldata.bigEndian() && pixeldataVR.vr == VR.OW) ByteUtils.swapShorts(data); break; case DataBuffer.TYPE_USHORT: readFully(((DataBufferUShort) db).getData()); break; case DataBuffer.TYPE_SHORT: readFully(((DataBufferShort) db).getData()); break; default: throw new UnsupportedOperationException( "Unsupported Datatype: " + db.getDataType()); } return bi; }
private static void writeTo(Raster raster, OutputStream out) throws IOException { SampleModel sm = raster.getSampleModel(); DataBuffer db = raster.getDataBuffer(); switch (db.getDataType()) { case DataBuffer.TYPE_BYTE: writeTo(sm, ((DataBufferByte) db).getBankData(), out); break; case DataBuffer.TYPE_USHORT: writeTo(sm, ((DataBufferUShort) db).getData(), out); break; case DataBuffer.TYPE_SHORT: writeTo(sm, ((DataBufferShort) db).getData(), out); break; case DataBuffer.TYPE_INT: writeTo(sm, ((DataBufferInt) db).getData(), out); break; default: throw new UnsupportedOperationException( "Unsupported Datatype: " + db.getDataType()); } }
/** * https://osgeo-org.atlassian.net/browse/GEOS-4893, make meta-tiler work with WMS 1.3 as well * * @throws Exception */ @Test public void testMetaWMS13() throws Exception { String wms11 = "wms?LAYERS=cite%3ALakes&STYLES=&FORMAT=image%2Fpng&TILED=true&TILESORIGIN=0.0006%2C-0.0018" + "&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A4326&BBOX=0.0006,-0.0018,0.0031,0.0007&WIDTH=256&HEIGHT=256"; String wms13 = "wms?LAYERS=cite%3ALakes&STYLES=&FORMAT=image%2Fpng&TILED=true&TILESORIGIN=-0.0018%2C0.0006" + "&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS=EPSG%3A4326&BBOX=-0.0018,0.0006,0.0007,0.0031&WIDTH=256&HEIGHT=256"; BufferedImage image11 = getAsImage(wms11, "image/png"); BufferedImage image13 = getAsImage(wms13, "image/png"); // compare the general structure assertEquals(image11.getWidth(), image13.getWidth()); assertEquals(image11.getHeight(), image13.getHeight()); assertEquals(image11.getColorModel(), image13.getColorModel()); assertEquals(image11.getSampleModel(), image13.getSampleModel()); // compare the actual data DataBufferByte db11 = (DataBufferByte) image11.getData().getDataBuffer(); DataBufferByte db13 = (DataBufferByte) image13.getData().getDataBuffer(); byte[][] bankData11 = db11.getBankData(); byte[][] bankData13 = db13.getBankData(); for (int i = 0; i < bankData11.length; i++) { assertTrue(Arrays.equals(bankData11[i], bankData13[i])); } }
protected static void mult_BYTE_COMP_Data(WritableRaster wr) { // System.out.println("Multiply Int: " + wr); ComponentSampleModel csm; csm = (ComponentSampleModel) wr.getSampleModel(); final int width = wr.getWidth(); final int scanStride = csm.getScanlineStride(); final int pixStride = csm.getPixelStride(); final int[] bandOff = csm.getBandOffsets(); DataBufferByte db = (DataBufferByte) wr.getDataBuffer(); final int base = (db.getOffset() + csm.getOffset(wr.getMinX() - wr.getSampleModelTranslateX(), wr.getMinY() - wr.getSampleModelTranslateY())); int aOff = bandOff[bandOff.length - 1]; int bands = bandOff.length - 1; // Access the pixel data array final byte[] pixels = db.getBankData()[0]; for (int y = 0; y < wr.getHeight(); y++) { int sp = base + y * scanStride; final int end = sp + width * pixStride; while (sp < end) { int a = pixels[sp + aOff] & 0xFF; if (a != 0xFF) for (int b = 0; b < bands; b++) { int i = sp + bandOff[b]; pixels[i] = (byte) (((pixels[i] & 0xFF) * a) >> 8); } sp += pixStride; } } }
final byte[] pixels = db.getBankData()[0]; for (int y = 0; y < wr.getHeight(); y++) { int sp = base + y * scanStride;