本文整理汇总了Java中java.awt.image.MultiPixelPackedSampleModel.getPixelBitStride方法的典型用法代码示例。如果您正苦于以下问题:Java MultiPixelPackedSampleModel.getPixelBitStride方法的具体用法?Java MultiPixelPackedSampleModel.getPixelBitStride怎么用?Java MultiPixelPackedSampleModel.getPixelBitStride使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.awt.image.MultiPixelPackedSampleModel
的用法示例。
在下文中一共展示了MultiPixelPackedSampleModel.getPixelBitStride方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: convertTo1Bit
import java.awt.image.MultiPixelPackedSampleModel; //导入方法依赖的package包/类
/**
* Convert buffered image src to 1-bit BYTE_BINARY buffered image.
* @param src Image to convert
* @return new Buffered image containing 1-bit bitmap
*/
static BufferedImage convertTo1Bit(BufferedImage src) {
if(src.getType() == BufferedImage.TYPE_BYTE_BINARY){
MultiPixelPackedSampleModel mppsm = (MultiPixelPackedSampleModel) src.getRaster().getSampleModel();
if(mppsm.getPixelBitStride() == 1) return src;
}
int w = src.getWidth(null);
int h = src.getHeight(null);
BufferedImage dstImg = new BufferedImage(w, h,
BufferedImage.TYPE_BYTE_BINARY);
dstImg.getGraphics().drawImage(src, 0, 0, null);
return dstImg;
}
示例2: BytePackedRaster
import java.awt.image.MultiPixelPackedSampleModel; //导入方法依赖的package包/类
/**
* Constructs a BytePackedRaster with the given SampleModel,
* DataBuffer, and parent. DataBuffer must be a DataBufferByte and
* SampleModel must be of type MultiPixelPackedSampleModel.
* When translated into the base Raster's
* coordinate system, aRegion must be contained by the base Raster.
* Origin is the coordinate 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 DataBufferShort 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.
*
* @exception RasterFormatException if the parameters do not conform
* to requirements of this Raster type.
*/
public BytePackedRaster(SampleModel sampleModel,
DataBuffer dataBuffer,
Rectangle aRegion,
Point origin,
BytePackedRaster parent){
super(sampleModel,dataBuffer,aRegion,origin, parent);
this.maxX = minX + width;
this.maxY = minY + height;
if (!(dataBuffer instanceof DataBufferByte)) {
throw new RasterFormatException("BytePackedRasters must have" +
"byte DataBuffers");
}
DataBufferByte dbb = (DataBufferByte)dataBuffer;
this.data = stealData(dbb, 0);
if (dbb.getNumBanks() != 1) {
throw new
RasterFormatException("DataBuffer for BytePackedRasters"+
" must only have 1 bank.");
}
int dbOffset = dbb.getOffset();
if (sampleModel instanceof MultiPixelPackedSampleModel) {
MultiPixelPackedSampleModel mppsm =
(MultiPixelPackedSampleModel)sampleModel;
this.type = IntegerComponentRaster.TYPE_BYTE_BINARY_SAMPLES;
pixelBitStride = mppsm.getPixelBitStride();
if (pixelBitStride != 1 &&
pixelBitStride != 2 &&
pixelBitStride != 4) {
throw new RasterFormatException
("BytePackedRasters must have a bit depth of 1, 2, or 4");
}
scanlineStride = mppsm.getScanlineStride();
dataBitOffset = mppsm.getDataBitOffset() + dbOffset*8;
int xOffset = aRegion.x - origin.x;
int yOffset = aRegion.y - origin.y;
dataBitOffset += xOffset*pixelBitStride + yOffset*scanlineStride*8;
bitMask = (1 << pixelBitStride) -1;
shiftOffset = 8 - pixelBitStride;
} else {
throw new RasterFormatException("BytePackedRasters must have"+
"MultiPixelPackedSampleModel");
}
verify(false);
}
示例3: BytePackedRaster
import java.awt.image.MultiPixelPackedSampleModel; //导入方法依赖的package包/类
/**
* Constructs a BytePackedRaster with the given SampleModel,
* DataBuffer, and parent. DataBuffer must be a DataBufferByte and
* SampleModel must be of type MultiPixelPackedSampleModel.
* When translated into the base Raster's
* coordinate system, aRegion must be contained by the base Raster.
* Origin is the coordinate 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 DataBufferByte 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.
*
* @exception RasterFormatException if the parameters do not conform
* to requirements of this Raster type.
*/
public BytePackedRaster(SampleModel sampleModel,
DataBufferByte dataBuffer,
Rectangle aRegion,
Point origin,
BytePackedRaster parent)
{
super(sampleModel,dataBuffer,aRegion,origin, parent);
this.maxX = minX + width;
this.maxY = minY + height;
this.data = stealData(dataBuffer, 0);
if (dataBuffer.getNumBanks() != 1) {
throw new
RasterFormatException("DataBuffer for BytePackedRasters"+
" must only have 1 bank.");
}
int dbOffset = dataBuffer.getOffset();
if (sampleModel instanceof MultiPixelPackedSampleModel) {
MultiPixelPackedSampleModel mppsm =
(MultiPixelPackedSampleModel)sampleModel;
this.type = IntegerComponentRaster.TYPE_BYTE_BINARY_SAMPLES;
pixelBitStride = mppsm.getPixelBitStride();
if (pixelBitStride != 1 &&
pixelBitStride != 2 &&
pixelBitStride != 4) {
throw new RasterFormatException
("BytePackedRasters must have a bit depth of 1, 2, or 4");
}
scanlineStride = mppsm.getScanlineStride();
dataBitOffset = mppsm.getDataBitOffset() + dbOffset*8;
int xOffset = aRegion.x - origin.x;
int yOffset = aRegion.y - origin.y;
dataBitOffset += xOffset*pixelBitStride + yOffset*scanlineStride*8;
bitMask = (1 << pixelBitStride) -1;
shiftOffset = 8 - pixelBitStride;
} else {
throw new RasterFormatException("BytePackedRasters must have"+
"MultiPixelPackedSampleModel");
}
verify(false);
}
示例4: areEqualSampleModels
import java.awt.image.MultiPixelPackedSampleModel; //导入方法依赖的package包/类
/**
* Determines whether two SampleModels are "equal", i.e.,
* assignment-compatible. This signifies that the two SampleModels
* are either the very same object or are two different objects
* with identical characteristics.
*/
public boolean areEqualSampleModels(SampleModel sm1, SampleModel sm2) {
if(sm1 == sm2) {
// Identical objects.
return true;
} else if(sm1.getClass() == sm2.getClass() &&
sm1.getDataType() == sm2.getDataType() &&
sm1.getTransferType() == sm2.getTransferType() &&
sm1.getWidth() == sm2.getWidth() &&
sm1.getHeight() == sm2.getHeight()) {
// At this point all common attributes are equivalent. Next test
// those specific to the known direct subclasses of SampleModel.
// Subclasses which are not known will always return false.
if(sm1 instanceof ComponentSampleModel) {
ComponentSampleModel csm1 = (ComponentSampleModel)sm1;
ComponentSampleModel csm2 = (ComponentSampleModel)sm2;
return csm1.getPixelStride() == csm2.getPixelStride() &&
csm1.getScanlineStride() == csm2.getScanlineStride() &&
Arrays.equals(csm1.getBankIndices(),
csm2.getBankIndices()) &&
Arrays.equals(csm1.getBandOffsets(),
csm2.getBandOffsets());
} else if(sm1 instanceof MultiPixelPackedSampleModel) {
MultiPixelPackedSampleModel mpp1 =
(MultiPixelPackedSampleModel)sm1;
MultiPixelPackedSampleModel mpp2 =
(MultiPixelPackedSampleModel)sm2;
return mpp1.getPixelBitStride() == mpp2.getPixelBitStride() &&
mpp1.getScanlineStride() == mpp2.getScanlineStride() &&
mpp1.getDataBitOffset() == mpp2.getDataBitOffset();
} else if(sm1 instanceof SinglePixelPackedSampleModel) {
SinglePixelPackedSampleModel spp1 =
(SinglePixelPackedSampleModel)sm1;
SinglePixelPackedSampleModel spp2 =
(SinglePixelPackedSampleModel)sm2;
return spp1.getScanlineStride() == spp2.getScanlineStride() &&
Arrays.equals(spp1.getBitMasks(), spp2.getBitMasks());
}
}
return false;
}