public RasterByteGrayAlphaProvider(Raster raster) { super(raster, 8, raster.getWidth() * computePixelStride(raster, PIXEL_STRIDES)); this.bytes = ((DataBufferByte) raster.getDataBuffer()).getData(); ComponentSampleModel sm = (ComponentSampleModel) raster.getSampleModel(); this.bandOffsets = sm.getBandOffsets(); this.numBands = sm.getNumBands(); this.pixelStride = sm.getPixelStride(); this.alphaFirst = bandOffsets[0] != 0; }
public RasterByteABGRProvider(Raster raster, boolean hasAlpha) { super(raster, 8, raster.getWidth() * (computePixelStride(raster, PIXEL_STRIDES, hasAlpha))); this.hasAlpha = hasAlpha; this.bytes = ((DataBufferByte) raster.getDataBuffer()).getData(); ComponentSampleModel sm = (ComponentSampleModel) raster.getSampleModel(); this.bgrOrder = sm.getBandOffsets()[0] != 0; this.pixelStride = sm.getPixelStride(); this.bandOffsets = sm.getBandOffsets(); this.numBands = sm.getNumBands(); }
public boolean is_INT_PACK_BYTE_COMP(SampleModel srcSM, SampleModel alpSM) { // Check SampleModel types DirectColorModel if(!(srcSM instanceof SinglePixelPackedSampleModel)) return false; if(!(alpSM instanceof ComponentSampleModel)) return false; // Check transfer types if(srcSM.getDataType() != DataBuffer.TYPE_INT) return false; if(alpSM.getDataType() != DataBuffer.TYPE_BYTE) return false; SinglePixelPackedSampleModel sppsm; sppsm = (SinglePixelPackedSampleModel)srcSM; int [] masks = sppsm.getBitMasks(); if(masks.length != 4) return false; if(masks[0] != 0x00ff0000) return false; if(masks[1] != 0x0000ff00) return false; if(masks[2] != 0x000000ff) return false; if(masks[3] != 0xff000000) return false; ComponentSampleModel csm; csm = (ComponentSampleModel)alpSM; if (csm.getNumBands() != 1) return false; if (csm.getPixelStride() != 1) return false; return true; }
public boolean is_INT_PACK_BYTE_COMP(SampleModel srcSM, SampleModel alpSM) { // Check SampleModel types DirectColorModel if(!(srcSM instanceof SinglePixelPackedSampleModel)) return false; if(!(alpSM instanceof ComponentSampleModel)) return false; // Check transfer types if(srcSM.getDataType() != DataBuffer.TYPE_INT) return false; if(alpSM.getDataType() != DataBuffer.TYPE_BYTE) return false; SinglePixelPackedSampleModel sppsm; sppsm = (SinglePixelPackedSampleModel)srcSM; int [] masks = sppsm.getBitMasks(); if(masks.length != 4) return false; if(masks[0] != 0x00ff0000) return false; if(masks[1] != 0x0000ff00) return false; if(masks[2] != 0x000000ff) return false; if(masks[3] != 0xff000000) return false; ComponentSampleModel csm; csm = (ComponentSampleModel)alpSM; if (csm.getNumBands() != 1) return false; if (csm.getPixelStride() != 1) return false; return true; }
public boolean is_INT_PACK_BYTE_COMP(SampleModel srcSM, SampleModel alpSM) { // Check SampleModel types DirectColorModel if(!(srcSM instanceof SinglePixelPackedSampleModel)) return false; if(!(alpSM instanceof ComponentSampleModel)) return false; // Check transfer types if(srcSM.getDataType() != DataBuffer.TYPE_INT) return false; if(alpSM.getDataType() != DataBuffer.TYPE_BYTE) return false; SinglePixelPackedSampleModel sppsm; sppsm = (SinglePixelPackedSampleModel)srcSM; int [] masks = sppsm.getBitMasks(); if(masks.length != 4) return false; if(masks[0] != 0x00ff0000) return false; if(masks[1] != 0x0000ff00) return false; if(masks[2] != 0x000000ff) return false; if(masks[3] != 0xff000000) return false; ComponentSampleModel csm; csm = (ComponentSampleModel)alpSM; if (csm.getNumBands() != 1) return false; if (csm.getPixelStride() != 1) return false; return true; }
if (csm.getPixelStride() != csm.getNumBands()) { return false;
if (csm.getPixelStride() != csm.getNumBands()) { return false;
if (csm.getPixelStride() != csm.getNumBands()) { return false;
if (csm.getPixelStride() != csm.getNumBands()) { return false;
private int maxDiff(ComponentSampleModel csm, byte[][] banks, ComponentSampleModel csm2, byte[][] banks2) { int w = csm.getWidth(); int h = csm.getHeight(); int bands = csm.getNumBands(); int stride = csm.getScanlineStride(); int pixelStride = csm.getPixelStride(); int[] bankIndices = csm.getBankIndices(); int[] bandOffsets = csm.getBandOffsets(); int stride2 = csm2.getScanlineStride(); int pixelStride2 = csm2.getPixelStride(); int[] bankIndices2 = csm2.getBankIndices(); int[] bandOffsets2 = csm2.getBandOffsets(); int diff, maxDiff = 0; for (int b = 0; b < bands; b++) { byte[] bank = banks[bankIndices[b]]; byte[] bank2 = banks2[bankIndices2[b]]; int off = bandOffsets[b]; int off2 = bandOffsets2[b]; for (int y = 0; y < h; y++) { for (int x = w, i = y * stride + off, i2 = y * stride2 + off2; x-- > 0; i += pixelStride, i2 += pixelStride2) { if (maxDiff < (diff = Math.abs(bank[i] - bank2[i2]))) maxDiff = diff; } } } return maxDiff; }
private int maxDiff(ComponentSampleModel csm, byte[][] banks, ComponentSampleModel csm2, byte[][] banks2) { int w = csm.getWidth(); int h = csm.getHeight(); int bands = csm.getNumBands(); int stride = csm.getScanlineStride(); int pixelStride = csm.getPixelStride(); int[] bankIndices = csm.getBankIndices(); int[] bandOffsets = csm.getBandOffsets(); int stride2 = csm2.getScanlineStride(); int pixelStride2 = csm2.getPixelStride(); int[] bankIndices2 = csm2.getBankIndices(); int[] bandOffsets2 = csm2.getBandOffsets(); int diff, maxDiff = 0; for (int b = 0; b < bands; b++) { byte[] bank = banks[bankIndices[b]]; byte[] bank2 = banks2[bankIndices2[b]]; int off = bandOffsets[b]; int off2 = bandOffsets2[b]; for (int y = 0; y < h; y++) { for (int x = w, i = y * stride + off, i2 = y * stride2 + off2; x-- > 0; i += pixelStride, i2 += pixelStride2) { if (maxDiff < (diff = Math.abs(bank[i] - bank2[i2]))) maxDiff = diff; } } } return maxDiff; } }
int[] samples = new int[blockSize * blockSize]; int diff, maxDiff = 0; for (int b = 0; b < csm.getNumBands(); b++) for (int y = 0; y < maxY; y += blockSize) { for (int x = 0; x < maxX; x += blockSize) {
int[] samples = new int[blockSize * blockSize]; int diff, maxDiff = 0; for (int b = 0; b < csm.getNumBands(); b++) for (int y = 0; y < maxY; y += blockSize) { for (int x = 0; x < maxX; x += blockSize) {
Assert.argument(sm.getNumBands() == 1, "raster"); DataBuffer db = raster.getDataBuffer(); Assert.argument(db.getNumBanks() == 1, "raster");
ComponentSampleModel csm = (ComponentSampleModel)sm; pos = csm.getOffset(startX, startY, 0); for(int nb=1; nb < csm.getNumBands(); nb++) { if (pos > csm.getOffset(startX, startY, nb)) { pos = csm.getOffset(startX, startY, nb);
ComponentSampleModel csm = (ComponentSampleModel)sm; pos = csm.getOffset(startX, startY, 0); for(int nb=1; nb < csm.getNumBands(); nb++) { if (pos > csm.getOffset(startX, startY, nb)) { pos = csm.getOffset(startX, startY, nb);
ComponentSampleModel csm = (ComponentSampleModel)sm; pos = csm.getOffset(startX, startY, 0); for(int nb=1; nb < csm.getNumBands(); nb++) { if (pos > csm.getOffset(startX, startY, nb)) { pos = csm.getOffset(startX, startY, nb);