當前位置: 首頁>>代碼示例>>Java>>正文


Java Raster.getSampleModel方法代碼示例

本文整理匯總了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;
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:19,代碼來源:SingleTileRenderedImage.java

示例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;
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:45,代碼來源:LCMSImageLayout.java

示例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);
    }
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:68,代碼來源:RenderableImageProducer.java

示例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;
}
 
開發者ID:dbmdz,項目名稱:imageio-jnr,代碼行數:55,代碼來源:OpenJpeg.java

示例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;
}
 
開發者ID:ec-europa,項目名稱:sumo,代碼行數:29,代碼來源:TestRaster.java


注:本文中的java.awt.image.Raster.getSampleModel方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。