当前位置: 首页>>代码示例>>Java>>正文


Java ByteComponentRaster.getDataStorage方法代码示例

本文整理汇总了Java中sun.awt.image.ByteComponentRaster.getDataStorage方法的典型用法代码示例。如果您正苦于以下问题:Java ByteComponentRaster.getDataStorage方法的具体用法?Java ByteComponentRaster.getDataStorage怎么用?Java ByteComponentRaster.getDataStorage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在sun.awt.image.ByteComponentRaster的用法示例。


在下文中一共展示了ByteComponentRaster.getDataStorage方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createImageLayout

import sun.awt.image.ByteComponentRaster; //导入方法依赖的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

示例2: convertToRGB

import sun.awt.image.ByteComponentRaster; //导入方法依赖的package包/类
private void convertToRGB() {
    int w = bimage.getWidth();
    int h = bimage.getHeight();
    int size = w*h;

    DataBufferInt dbi = new DataBufferInt(size);
    // Note that stealData() requires a markDirty() afterwards
    // since we modify the data in it.
    int newpixels[] = SunWritableRaster.stealData(dbi, 0);
    if (cmodel instanceof IndexColorModel &&
        biRaster instanceof ByteComponentRaster &&
        biRaster.getNumDataElements() == 1)
    {
        ByteComponentRaster bct = (ByteComponentRaster) biRaster;
        byte[] data = bct.getDataStorage();
        int coff = bct.getDataOffset(0);
        for (int i=0; i < size; i++) {
            newpixels[i] = srcLUT[data[coff+i]&0xff];
        }
    }
    else {
        Object srcpixels = null;
        int off=0;
        for (int y=0; y < h; y++) {
            for (int x=0; x < w; x++) {
                srcpixels=biRaster.getDataElements(x, y, srcpixels);
                newpixels[off++] = cmodel.getRGB(srcpixels);
            }
        }
    }
    // We modified the data array directly above so mark it as dirty now...
    SunWritableRaster.markDirty(dbi);

    isSameCM = false;
    cmodel = ColorModel.getRGBdefault();

    int bandMasks[] = {0x00ff0000,
                       0x0000ff00,
                       0x000000ff,
                       0xff000000};

    biRaster = Raster.createPackedRaster(dbi,w,h,w,
                                         bandMasks,null);

    bimage = createImage(cmodel, biRaster,
                         cmodel.isAlphaPremultiplied(), null);
    srcLUT = null;
    isDefaultBI = true;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:50,代码来源:ImageRepresentation.java

示例3: createImageLayout

import sun.awt.image.ByteComponentRaster; //导入方法依赖的package包/类
public static LCMSImageLayout createImageLayout(Raster r) {
    LCMSImageLayout l = new LCMSImageLayout();
    if (r instanceof ByteComponentRaster) {
        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:RedlineResearch,项目名称:OLD-OpenJDK8,代码行数:44,代码来源:LCMSImageLayout.java


注:本文中的sun.awt.image.ByteComponentRaster.getDataStorage方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。