Java Code Examples for java.awt.image.DataBufferInt#getNumBanks()
The following examples show how to use
java.awt.image.DataBufferInt#getNumBanks() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: PnmImageParserTest.java From commons-imaging with Apache License 2.0 | 6 votes |
@Test public void testWriteImageRaw_happyCase() throws ImageWriteException, ImageReadException, IOException { final BufferedImage srcImage = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB); final Map<String, Object> params = new HashMap<>(); params.put(PnmImageParser.PARAM_KEY_PNM_RAWBITS, PnmImageParser.PARAM_VALUE_PNM_RAWBITS_YES); final byte[] dstBytes = Imaging.writeImageToBytes(srcImage, ImageFormats.PNM, params); final BufferedImage dstImage = Imaging.getBufferedImage(dstBytes); assertTrue(srcImage.getWidth() == dstImage.getWidth()); assertTrue(srcImage.getHeight() == dstImage.getHeight()); final DataBufferInt srcData = (DataBufferInt) srcImage.getRaster().getDataBuffer(); final DataBufferInt dstData = (DataBufferInt) dstImage.getRaster().getDataBuffer(); for (int bank = 0; bank < srcData.getNumBanks(); bank++) { final int[] actual = srcData.getData(bank); final int[] expected = dstData.getData(bank); assertArrayEquals(actual, expected); } }
Example 2
Source File: ImageService.java From jlineup with Apache License 2.0 | 5 votes |
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; }
Example 3
Source File: ImageUtilTest.java From runelite with BSD 2-Clause "Simplified" License | 5 votes |
/** * Compares whether two {@link BufferedImage}s are equal in data. * * @param expected The first {@link BufferedImage} to be compared. * @param actual The second {@link BufferedImage} to be compared. * @return A boolean indicating whether the given {@link BufferedImage}s are of the same image data. */ private boolean bufferedImagesEqual(final @Nonnull BufferedImage expected, final @Nonnull BufferedImage actual) { if (expected.getWidth() != actual.getWidth()) { return false; } if (!expected.getColorModel().equals(actual.getColorModel())) { return false; } final DataBuffer aBuffer = expected.getRaster().getDataBuffer(); final DataBuffer bBuffer = actual.getRaster().getDataBuffer(); final DataBufferInt aBufferInt = (DataBufferInt) aBuffer; final DataBufferInt bBufferInt = (DataBufferInt) bBuffer; if (aBufferInt.getNumBanks() != bBufferInt.getNumBanks()) { return false; } for (int i = 0; i < aBufferInt.getNumBanks(); i++) { final int[] aDataBank = aBufferInt.getData(i); final int[] bDataBank = bBufferInt.getData(i); if (!Arrays.equals(aDataBank, bDataBank)) { return false; } } return true; }
Example 4
Source File: IntegerComponentRaster.java From openjdk-jdk8u with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 5
Source File: IntegerComponentRaster.java From openjdk-jdk8u-backup with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 6
Source File: IntegerComponentRaster.java From Bytecoder with Apache License 2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBufferInt dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent) { super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (dataBuffer.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dataBuffer, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dataBuffer.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 7
Source File: IntegerComponentRaster.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBufferInt dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent) { super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (dataBuffer.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dataBuffer, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dataBuffer.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 8
Source File: IntegerComponentRaster.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 9
Source File: IntegerComponentRaster.java From hottub with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 10
Source File: IntegerComponentRaster.java From dragonwell8_jdk with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 11
Source File: IntegerComponentRaster.java From openjdk-8-source with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 12
Source File: IntegerComponentRaster.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 13
Source File: IntegerComponentRaster.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 14
Source File: IntegerComponentRaster.java From jdk8u60 with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 15
Source File: ImageUtils.java From RemoteSupportTool with Apache License 2.0 | 4 votes |
public static boolean equals(BufferedImage image1, BufferedImage image2) { final int image1Width = image1.getWidth(); final int image1Height = image1.getHeight(); final int image2Width = image2.getWidth(); final int image2Height = image2.getHeight(); if (image1Width != image2Width || image1Height != image2Height) return false; final DataBuffer image1Buffer = image1.getData().getDataBuffer(); final DataBuffer image2Buffer = image2.getData().getDataBuffer(); final int image1BufferSize = image1Buffer.getSize(); final int image2BufferSize = image2Buffer.getSize(); if (image1BufferSize != image2BufferSize) return false; if (image1Buffer instanceof DataBufferInt && image2Buffer instanceof DataBufferInt) { // compare according to https://stackoverflow.com/a/11006984 final DataBufferInt image1BufferInt = (DataBufferInt) image1Buffer; final DataBufferInt image2BufferInt = (DataBufferInt) image2Buffer; if (image1BufferInt.getNumBanks() != image2BufferInt.getNumBanks()) return false; for (int bank = 0; bank < image1BufferInt.getNumBanks(); bank++) { int[] actual = image1BufferInt.getData(bank); int[] expected = image2BufferInt.getData(bank); if (!Arrays.equals(actual, expected)) return false; } } else { // compare according to https://stackoverflow.com/a/51497360 for (int i = 0; i < image1BufferSize; i++) { if (image1Buffer.getElem(i) != image2Buffer.getElem(i)) { return false; } } } //for (int x = 0; x < image1Width; x++) { // for (int y = 0; y < image1Height; y++) { // if (image1.getRGB(x, y) != image2.getRGB(x, y)) { // return false; // } // } //} return true; }
Example 16
Source File: IntegerComponentRaster.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 17
Source File: IntegerComponentRaster.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }
Example 18
Source File: PngWriter.java From scrimage with Apache License 2.0 | 4 votes |
@Override public void write(AwtImage image, ImageMetadata metadata, OutputStream out) throws IOException { if (image.awt().getType() == BufferedImage.TYPE_INT_ARGB) { ImageInfo imi = new ImageInfo(image.width, image.height, 8, true); ar.com.hjg.pngj.PngWriter writer = new ar.com.hjg.pngj.PngWriter(out, imi); writer.setCompLevel(compressionLevel); writer.setFilterType(FilterType.FILTER_DEFAULT); DataBufferInt db = (DataBufferInt) image.awt().getRaster().getDataBuffer(); if (db.getNumBanks() != 1) throw new RuntimeException("This method expects one bank"); SinglePixelPackedSampleModel samplemodel = (SinglePixelPackedSampleModel) image.awt().getSampleModel(); ImageLineInt line = new ImageLineInt(imi); int[] dbbuf = db.getData(); for (int row = 0; row < imi.rows; row++) { int elem = samplemodel.getOffset(0, row); int j = 0; for (int col = 0; col < imi.cols; col++) { int sample = dbbuf[elem]; elem = elem + 1; line.getScanline()[j] = (sample & 0xFF0000) >> 16; // R j = j + 1; line.getScanline()[j] = (sample & 0xFF00) >> 8; // G j = j + 1; line.getScanline()[j] = sample & 0xFF; // B j = j + 1; line.getScanline()[j] = ((sample & 0xFF000000) >> 24) & 0xFF; // A j = j + 1; } writer.writeRow(line, row); } writer.end();// end calls close } else { ImageIO.write(image.awt(), "png", out); } }
Example 19
Source File: IntegerComponentRaster.java From TencentKona-8 with GNU General Public License v2.0 | 4 votes |
/** * Constructs a IntegerComponentRaster with the given SampleModel, * DataBuffer, and parent. DataBuffer must be a DataBufferInt and * SampleModel must be of type SinglePixelPackedSampleModel. * When translated into the base Raster's * coordinate system, aRegion must be contained by the base Raster. * Origin is the coodinate in the new Raster's coordinate system of * the origin of the base Raster. (The base Raster is the Raster's * ancestor which has no parent.) * * Note that this constructor should generally be called by other * constructors or create methods, it should not be used directly. * @param sampleModel The SampleModel that specifies the layout. * @param dataBuffer The DataBufferInt that contains the image data. * @param aRegion The Rectangle that specifies the image area. * @param origin The Point that specifies the origin. * @param parent The parent (if any) of this raster. */ public IntegerComponentRaster(SampleModel sampleModel, DataBuffer dataBuffer, Rectangle aRegion, Point origin, IntegerComponentRaster parent){ super(sampleModel,dataBuffer,aRegion,origin,parent); this.maxX = minX + width; this.maxY = minY + height; if (!(dataBuffer instanceof DataBufferInt)) { throw new RasterFormatException("IntegerComponentRasters must have" + "integer DataBuffers"); } DataBufferInt dbi = (DataBufferInt)dataBuffer; if (dbi.getNumBanks() != 1) { throw new RasterFormatException("DataBuffer for IntegerComponentRasters"+ " must only have 1 bank."); } this.data = stealData(dbi, 0); if (sampleModel instanceof SinglePixelPackedSampleModel) { SinglePixelPackedSampleModel sppsm = (SinglePixelPackedSampleModel)sampleModel; int[] boffsets = sppsm.getBitOffsets(); boolean notByteBoundary = false; for (int i=1; i < boffsets.length; i++) { if ((boffsets[i]%8) != 0) { notByteBoundary = true; } } this.type = (notByteBoundary ? IntegerComponentRaster.TYPE_INT_PACKED_SAMPLES : IntegerComponentRaster.TYPE_INT_8BIT_SAMPLES); this.scanlineStride = sppsm.getScanlineStride(); this.pixelStride = 1; this.dataOffsets = new int[1]; this.dataOffsets[0] = dbi.getOffset(); this.bandOffset = this.dataOffsets[0]; int xOffset = aRegion.x - origin.x; int yOffset = aRegion.y - origin.y; dataOffsets[0] += xOffset+yOffset*scanlineStride; this.numDataElems = sppsm.getNumDataElements(); } else { throw new RasterFormatException("IntegerComponentRasters must have"+ " SinglePixelPackedSampleModel"); } verify(); }