/** * A faster convert that works directly with a specific raster */ public static void bufferedToMulti_U8(SunWritableRaster src, Planar<GrayU8> dst) { if( src.getDataBuffer().getDataType() != DataBuffer.TYPE_BYTE ) throw new RuntimeException("Unsupported type"); DataBufferByte byteBuffer = (DataBufferByte)src.getDataBuffer(); byte[] srcData = byteBuffer.getData(); int numBands = src.getNumBands(); int srcOffset = 0; int srcStrideDiff = 0; if (numBands == 3) { from_3BU8_to_PLU8(dst, srcData, srcOffset, srcStrideDiff); } else if (numBands == 1) { from_1BU8_to_PLU8(dst, srcData, srcOffset, srcStrideDiff); } else if (numBands == 4) { from_4BU8_to_PLU8(dst, srcData, srcOffset, srcStrideDiff); } else { throw new RuntimeException("Write more code here."); } }
/** * A faster convert that works directly with a specific raster */ public static void bufferedToMulti_U8(ByteInterleavedRaster src, Planar<GrayU8> dst) { byte[] srcData = src.getDataStorage(); int numBands = src.getNumBands(); int srcStride = src.getScanlineStride(); int srcOffset = getOffset(src); int srcStrideDiff = srcStride-src.getPixelStride()*dst.width; if (numBands == 3) { from_3BU8_to_PLU8(dst, srcData, srcOffset, srcStrideDiff); } else if (numBands == 1) { from_1BU8_to_PLU8(dst, srcData, srcOffset, srcStrideDiff); } else if (numBands == 4) { from_4BU8_to_PLU8(dst, srcData, srcOffset, srcStrideDiff); } else { throw new RuntimeException("Write more code here."); } }