本文整理汇总了Java中java.awt.image.Raster.getSampleModel方法的典型用法代码示例。如果您正苦于以下问题:Java Raster.getSampleModel方法的具体用法?Java Raster.getSampleModel怎么用?Java Raster.getSampleModel使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.awt.image.Raster
的用法示例。
在下文中一共展示了Raster.getSampleModel方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: SingleTileRenderedImage
import java.awt.image.Raster; //导入方法依赖的package包/类
/**
* Constructs a SingleTileRenderedImage based on a Raster
* and a ColorModel.
*
* @param ras A Raster that will define tile (0, 0) of the image.
* @param colorModel A ColorModel that will serve as the image's
* ColorModel.
*/
public SingleTileRenderedImage(Raster ras, ColorModel colorModel) {
this.ras = ras;
this.tileGridXOffset = this.minX = ras.getMinX();
this.tileGridYOffset = this.minY = ras.getMinY();
this.tileWidth = this.width = ras.getWidth();
this.tileHeight = this.height = ras.getHeight();
this.sampleModel = ras.getSampleModel();
this.colorModel = colorModel;
}
示例2: createImageLayout
import java.awt.image.Raster; //导入方法依赖的package包/类
public static LCMSImageLayout createImageLayout(Raster r) {
LCMSImageLayout l = new LCMSImageLayout();
if (r instanceof ByteComponentRaster &&
r.getSampleModel() instanceof ComponentSampleModel) {
ByteComponentRaster br = (ByteComponentRaster)r;
ComponentSampleModel csm = (ComponentSampleModel)r.getSampleModel();
l.pixelType = CHANNELS_SH(br.getNumBands()) | BYTES_SH(1);
int[] bandOffsets = csm.getBandOffsets();
BandOrder order = BandOrder.getBandOrder(bandOffsets);
int firstBand = 0;
switch (order) {
case INVERTED:
l.pixelType |= DOSWAP;
firstBand = csm.getNumBands() - 1;
break;
case DIRECT:
// do nothing
break;
default:
// unable to create the image layout;
return null;
}
l.nextRowOffset = br.getScanlineStride();
l.nextPixelOffset = br.getPixelStride();
l.offset = br.getDataOffset(firstBand);
l.dataArray = br.getDataStorage();
l.dataType = DT_BYTE;
l.width = br.getWidth();
l.height = br.getHeight();
if (l.nextRowOffset == l.width * br.getPixelStride()) {
l.imageAtOnce = true;
}
return l;
}
return null;
}
示例3: run
import java.awt.image.Raster; //导入方法依赖的package包/类
/**
* The runnable method for this class. This will produce an image using
* the current RenderableImage and RenderContext and send it to all the
* ImageConsumer currently registered with this class.
*/
public void run() {
// First get the rendered image
RenderedImage rdrdImage;
if (rc != null) {
rdrdImage = rdblImage.createRendering(rc);
} else {
rdrdImage = rdblImage.createDefaultRendering();
}
// And its ColorModel
ColorModel colorModel = rdrdImage.getColorModel();
Raster raster = rdrdImage.getData();
SampleModel sampleModel = raster.getSampleModel();
DataBuffer dataBuffer = raster.getDataBuffer();
if (colorModel == null) {
colorModel = ColorModel.getRGBdefault();
}
int minX = raster.getMinX();
int minY = raster.getMinY();
int width = raster.getWidth();
int height = raster.getHeight();
Enumeration<ImageConsumer> icList;
ImageConsumer ic;
// Set up the ImageConsumers
icList = ics.elements();
while (icList.hasMoreElements()) {
ic = icList.nextElement();
ic.setDimensions(width,height);
ic.setHints(ImageConsumer.TOPDOWNLEFTRIGHT |
ImageConsumer.COMPLETESCANLINES |
ImageConsumer.SINGLEPASS |
ImageConsumer.SINGLEFRAME);
}
// Get RGB pixels from the raster scanline by scanline and
// send to consumers.
int pix[] = new int[width];
int i,j;
int numBands = sampleModel.getNumBands();
int tmpPixel[] = new int[numBands];
for (j = 0; j < height; j++) {
for(i = 0; i < width; i++) {
sampleModel.getPixel(i, j, tmpPixel, dataBuffer);
pix[i] = colorModel.getDataElement(tmpPixel, 0);
}
// Now send the scanline to the Consumers
icList = ics.elements();
while (icList.hasMoreElements()) {
ic = icList.nextElement();
ic.setPixels(0, j, width, 1, colorModel, pix, 0, width);
}
}
// Now tell the consumers we're done.
icList = ics.elements();
while (icList.hasMoreElements()) {
ic = icList.nextElement();
ic.imageComplete(ImageConsumer.STATICIMAGEDONE);
}
}
示例4: createImage
import java.awt.image.Raster; //导入方法依赖的package包/类
private opj_image createImage(Raster img) {
int numBands = img.getSampleModel().getNumBands();
if (numBands != 3 && numBands != 1) {
throw new IllegalArgumentException("Image must be RGB or Greyscale");
}
if (!(img.getSampleModel() instanceof PixelInterleavedSampleModel)) {
throw new IllegalArgumentException("Image must be of the 3BYTE_BGR or BYTE_GRAY");
}
opj_image_comptparm parms[] = Struct.arrayOf(runtime, opj_image_comptparm.class, numBands);
for (int i=0; i < numBands; i++) {
parms[i].prec.set(8); // One byte per component
parms[i].bpp.set(8); // 8bit depth
parms[i].sgnd.set(0);
parms[i].dx.set(1);
parms[i].dy.set(1);
parms[i].w.set(img.getWidth());
parms[i].h.set(img.getHeight());
}
COLOR_SPACE cspace = numBands == 3 ? COLOR_SPACE.OPJ_CLRSPC_SRGB : COLOR_SPACE.OPJ_CLRSPC_GRAY;
opj_image outImg = new opj_image(runtime);
Pointer imgPtr = lib.opj_image_create(parms.length, Struct.getMemory(parms[0]), cspace);
outImg.useMemory(imgPtr);
outImg.x0.set(0);
outImg.y0.set(0);
outImg.x1.set(img.getWidth());
outImg.y1.set(img.getHeight());
byte[] imgData = ((DataBufferByte) img.getDataBuffer()).getData();
int numcomps = (int) outImg.numcomps.get();
opj_image_comp[] comps = outImg.comps.get(numcomps);
if (numcomps > 1) {
Pointer red = comps[0].data.get();
Pointer green = comps[1].data.get();
Pointer blue = comps[2].data.get();
int offset = 0;
for (int y = 0; y < img.getHeight(); y++) {
for (int x = 0; x < img.getWidth(); x++) {
red.putByte(offset * 4, imgData[offset * 3 + 2]);
green.putByte(offset * 4, imgData[offset * 3 + 1]);
blue.putByte(offset * 4, imgData[offset * 3]);
offset += 1;
}
}
} else {
Pointer ptr = comps[0].data.get();
for (int i=0; i < img.getWidth() * img.getHeight(); i++) {
ptr.putByte(i*4, imgData[i]);
}
}
return outImg;
}
示例5: readSLCRasterBand
import java.awt.image.Raster; //导入方法依赖的package包/类
public static double[] readSLCRasterBand(int x, int y, int width, int height) throws IOException {
final double[] srcArray;
final ImageReader reader = ImageIO.getImageReadersByFormatName("tiff").next();
ImageInputStream iis = ImageIO.createImageInputStream(file);
reader.setInput(iis);
final ImageReadParam param = reader.getDefaultReadParam();
param.setSourceSubsampling(width,height,0,0);
final RenderedImage image = reader.readAsRenderedImage(0,param);
final Raster data = image.getData(new Rectangle(0,0, width, height));
final SampleModel sampleModel = data.getSampleModel();
srcArray = new double[width * height];
double[] samples = sampleModel.getSamples(0, 0, width, height, 0, srcArray,data.getDataBuffer());
/*if (oneOfTwo)
copyLine1Of2(srcArray, (short[]) destBuffer.getElems(), sourceStepX);
else
copyLine2Of2(srcArray, (short[]) destBuffer.getElems(), sourceStepX);*/
return samples;
}