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


Java ImageReadParam.getDestinationOffset方法代碼示例

本文整理匯總了Java中javax.imageio.ImageReadParam.getDestinationOffset方法的典型用法代碼示例。如果您正苦於以下問題:Java ImageReadParam.getDestinationOffset方法的具體用法?Java ImageReadParam.getDestinationOffset怎麽用?Java ImageReadParam.getDestinationOffset使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.imageio.ImageReadParam的用法示例。


在下文中一共展示了ImageReadParam.getDestinationOffset方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: readRaster

import javax.imageio.ImageReadParam; //導入方法依賴的package包/類
@Override
    public Raster readRaster(int imageIndex, ImageReadParam param)
            throws IOException {
        checkIndex(imageIndex);

        Rectangle sourceRegion = new Rectangle();
        Rectangle destRegion = new Rectangle();
        computeRegions(param, getWidth(imageIndex), getHeight(imageIndex),
                       null, sourceRegion, destRegion);

        // Set everything to default values
        int sourceXSubsampling = param != null ? param.getSourceXSubsampling()
                : 1;
        int sourceYSubsampling = param != null ? param.getSourceYSubsampling()
                : 1;
        Point destinationOffset = param != null ? param.getDestinationOffset()
                : new Point(0, 0);

        ImageSubheader subheader;
        try {
            subheader = record.getImages()[imageIndex].getSubheader();
        } catch (NITFException e) {
            throw new IOException(ExceptionUtils.getStackTrace(e));
        }
//        String irep = subheader.getImageRepresentation().getStringData().trim();
        String pvType = subheader.getPixelValueType().getStringData().trim();
        int nbpp = subheader.getNumBitsPerPixel().getIntData();
        int bandCount = subheader.getBandCount();

        // make the band offsets array, for the output
        int[] bandOffsets;
        int[] sourceBands = param != null ? param.getSourceBands() : null;
        if (param != null && param.getDestinationBands() != null)
            bandOffsets = param.getDestinationBands();
        else if (param != null && sourceBands != null) {
            bandOffsets = new int[sourceBands.length];
            System.arraycopy(sourceBands, 0, bandOffsets, 0, bandOffsets.length);
        } else {
            // Setup band offsets -- TODO should we really read ALL bands by
            // default?
            bandOffsets = new int[bandCount];
            for (int i = 0; i < bandOffsets.length; i++)
                bandOffsets[i] = i;
        }

        int nBytes = ((nbpp - 1) / 8) + 1;

        int bufType;

        // byte
        if (nBytes == 1) {
            bufType = DataBuffer.TYPE_BYTE;
        }
        // short
        else if (nBytes == 2) {
            bufType = DataBuffer.TYPE_USHORT;
        }
        // float
        else if (nBytes == 4 && pvType.equals("R")) {
            bufType = DataBuffer.TYPE_FLOAT;
        }
        // double
        else if (nBytes == 8 && pvType.equals("R")) {
            bufType = DataBuffer.TYPE_DOUBLE;
        } else {
            throw new NotImplementedException("not yet implemented");
        }

        WritableRaster ras = ImageIOUtils
                .makeGenericPixelInterleavedWritableRaster(destRegion.width,
                                                           destRegion.height, bandOffsets.length, bufType);
        checkReadParamBandSettings(param, bandCount, ras.getSampleModel()
                .getNumBands());
        readRaster(imageIndex, sourceRegion, destRegion, sourceXSubsampling,
                   sourceYSubsampling, bandOffsets, nBytes, destinationOffset, ras);
        return ras;
    }
 
開發者ID:senbox-org,項目名稱:s2tbx,代碼行數:78,代碼來源:NITFReader.java

示例2: read

import javax.imageio.ImageReadParam; //導入方法依賴的package包/類
public BufferedImage read(int imageIndex, ImageReadParam param)
    throws IOException {
    if (param == null)
        param = getDefaultReadParam();
    checkIndex(imageIndex);
    clearAbortRequest();
    processImageStarted(imageIndex);

    BufferedImage bi = param.getDestination();
    RawRenderedImage image =
        new RawRenderedImage(iis, this,  param, imageIndex);
    Point offset = param.getDestinationOffset();
    WritableRaster raster;

    if (bi == null) {
        ColorModel colorModel = image.getColorModel();
        SampleModel sampleModel = image.getSampleModel();

        // If the destination type is specified, use the color model of it.
        ImageTypeSpecifier type = param.getDestinationType();
        if (type != null)
            colorModel = type.getColorModel();

        raster = Raster.createWritableRaster(
            sampleModel.createCompatibleSampleModel(image.getMinX()+
                                                    image.getWidth(),
                                                    image.getMinY() +
                                                    image.getHeight()),
            new Point(0, 0));

        bi = new BufferedImage(colorModel,
                               raster,
                               colorModel != null ?
                               colorModel.isAlphaPremultiplied() : false,
                               new Hashtable());
    } else {
        raster = bi.getWritableTile(0, 0);
    }

    image.setDestImage(bi);

    image.readAsRaster(raster);
    image.clearDestImage();

    if (abortRequested())
        processReadAborted();
    else
        processImageComplete();
    return bi;
}
 
開發者ID:scifio,項目名稱:scifio-jai-imageio,代碼行數:51,代碼來源:RawImageReader.java


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