public static boolean IsPngEquals(File pngFile, byte[] pngBytes) throws IOException { BufferedImage imageA = ImageIO.read(pngFile); ByteArrayInputStream inStreamB = new ByteArrayInputStream(pngBytes); BufferedImage imageB = ImageIO.read(inStreamB); inStreamB.close(); DataBufferByte dataBufferA = (DataBufferByte)imageA.getRaster().getDataBuffer(); DataBufferByte dataBufferB = (DataBufferByte)imageB.getRaster().getDataBuffer(); if (dataBufferA.getNumBanks() != dataBufferB.getNumBanks()) { return false; } for (int bank = 0; bank < dataBufferA.getNumBanks(); bank++) { if (!Arrays.equals(dataBufferA.getData(bank), dataBufferB.getData(bank))) { return false; } } return true; }
public static boolean bufferedImagesEqualQuick(BufferedImage image1, BufferedImage image2) { DataBuffer dataBuffer1 = image1.getRaster().getDataBuffer(); DataBuffer dataBuffer2 = image2.getRaster().getDataBuffer(); if (dataBuffer1 instanceof DataBufferByte && dataBuffer2 instanceof DataBufferByte) { DataBufferByte dataBufferBytes1 = (DataBufferByte) dataBuffer1; DataBufferByte dataBufferBytes2 = (DataBufferByte) dataBuffer2; for (int bank = 0; bank < dataBufferBytes1.getNumBanks(); bank++) { byte[] bytes1 = dataBufferBytes1.getData(bank); byte[] bytes2 = dataBufferBytes2.getData(bank); if (!Arrays.equals(bytes1, bytes2)) { return false; } } } else if (dataBuffer1 instanceof DataBufferInt && dataBuffer2 instanceof DataBufferInt) { DataBufferInt dataBufferInt1 = (DataBufferInt) dataBuffer1; DataBufferInt dataBufferInt2 = (DataBufferInt) dataBuffer2; for (int bank = 0; bank < dataBufferInt1.getNumBanks(); bank++) { int[] ints1 = dataBufferInt1.getData(bank); int[] ints2 = dataBufferInt2.getData(bank); if (!Arrays.equals(ints1, ints2)) { return false; } } } else { return false; } return true; } }
Raster raster = buffimage.getRaster(); DataBufferByte buffer = (DataBufferByte) raster.getDataBuffer(); int numbanks = buffer.getNumBanks(); for (int j = 0; j < numbanks; j++) { checksum.update(buffer.getData(j));
buffer = (DataBufferByte) raster.getDataBuffer(); int numbanks = buffer.getNumBanks(); for (int j = 0; j < numbanks; j++) { checksum.update(buffer.getData(j));
buffer = (DataBufferByte) raster.getDataBuffer(); int numbanks = buffer.getNumBanks(); for (int j = 0; j < numbanks; j++) { checksum.update(buffer.getData(j));
public Array readCompressedData(ucar.nc2.Variable v2, long dataPos, int[] origin, int[] shape, int[] stride) throws IOException, InvalidRangeException { long length = raf.length(); raf.seek(dataPos); int data_size = (int) (length - dataPos); byte[] data = new byte[data_size]; raf.read(data); ByteArrayInputStream ios = new ByteArrayInputStream(data); BufferedImage image = javax.imageio.ImageIO.read(ios); Raster raster = image.getData(); DataBuffer db = raster.getDataBuffer(); if (db instanceof DataBufferByte) { DataBufferByte dbb = (DataBufferByte) db; int t = dbb.getNumBanks(); byte[] udata = dbb.getData(); Array array = Array.factory(DataType.BYTE.getPrimitiveClassType(), v2.getShape(), udata); v2.setCachedData(array, false); return array.sectionNoReduce(origin, shape, stride); } return null; }
if (img.getSampleModel() instanceof MultiPixelPackedSampleModel && dataBuffer.getNumBanks() == 1) { byte[] buf = dataBuffer.getData(); MultiPixelPackedSampleModel sampleModel = (MultiPixelPackedSampleModel)img.getSampleModel();
DataBuffer.TYPE_BYTE, img.getWidth(), img.getHeight(), 1); if (img.getSampleModel().equals(packedSampleModel) && dataBuffer.getNumBanks() == 1) {
int t = dbb.getNumBanks(); byte[] udata = dbb.getData();