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


Java Picture.getData方法代码示例

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


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

示例1: encodeFrame

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public ByteBuffer encodeFrame(Picture picture) {
    if (picture.getColor() != ColorSpace.RGB)
        throw new IllegalArgumentException("Only RGB image can be stored in PPM");
    ByteBuffer buffer = ByteBuffer.allocate(picture.getWidth() * picture.getHeight() * 3 + 200);
    buffer.put(JCodecUtil.asciiString("P6 " + picture.getWidth() + " " + picture.getHeight() + " 255\n"));

    int[][] data = picture.getData();
    for (int i = 0; i < picture.getWidth() * picture.getHeight() * 3; i += 3) {
        buffer.put((byte) data[0][i + 2]);
        buffer.put((byte) data[0][i + 1]);
        buffer.put((byte) data[0][i]);
    }

    buffer.flip();

    return buffer;
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:18,代码来源:PPMEncoder.java

示例2: sliceData

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
private Picture sliceData(Picture source, int mbX, int mbY, int mbWidth, int sliceMbCount) {

        Picture pic = Picture.create(sliceMbCount << 4, 16, YUV422_10);
        int[][] out = pic.getData();
        int[][] in = source.getData();

        System.arraycopy(in[0], (mbY * mbWidth + mbX) << 8, out[0], 0, out[0].length);
        System.arraycopy(in[1], (mbY * mbWidth + mbX) << 7, out[1], 0, out[1].length);
        System.arraycopy(in[2], (mbY * mbWidth + mbX) << 7, out[2], 0, out[2].length);

        return pic;
    }
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:13,代码来源:DCT2Prores.java

示例3: decodeField

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
@Override
public Picture decodeField(ByteBuffer data, int[][] data2, int field, int step) {
    Picture res = super.decodeField(data, data2, field, step);

    return new Picture(res.getWidth() >> 1, res.getHeight() >> 1, res.getData(), res.getColor(), new Rect(0, 0,
            res.getCroppedWidth() >> 1, res.getCroppedHeight() >> 1));
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:8,代码来源:JpegToThumb4x4.java

示例4: decodeField

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
@Override
public Picture decodeField(ByteBuffer data, int[][] data2, int field, int step) {
    Picture res = super.decodeField(data, data2, field, step);

    return new Picture(res.getWidth() >> 2, res.getHeight() >> 2, res.getData(), res.getColor(), new Rect(0, 0,
            res.getCroppedWidth() >> 2, res.getCroppedHeight() >> 2));
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:8,代码来源:JpegToThumb2x2.java

示例5: encodeFrame

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public ByteBuffer encodeFrame(ByteBuffer _out, Picture frame) throws IOException {
    ByteBuffer out = _out.duplicate();
    out.order(ByteOrder.LITTLE_ENDIAN);
    int tgtStride = ((frame.getPlaneWidth(0) + 47) / 48) * 48;
    int[][] data = frame.getData();

    int[] tmpY = new int[tgtStride];
    int[] tmpCb = new int[tgtStride >> 1];
    int[] tmpCr = new int[tgtStride >> 1];

    int yOff = 0, cbOff = 0, crOff = 0;
    for (int yy = 0; yy < frame.getHeight(); yy++) {
        arraycopy(data[0], yOff, tmpY, 0, frame.getPlaneWidth(0));
        arraycopy(data[1], cbOff, tmpCb, 0, frame.getPlaneWidth(1));
        arraycopy(data[2], crOff, tmpCr, 0, frame.getPlaneWidth(2));

        for (int yi = 0, cbi = 0, cri = 0; yi < tgtStride;) {
            int i = 0;
            i |= clip(tmpCr[cri++]) << 20;
            i |= clip(tmpY[yi++]) << 10;
            i |= clip(tmpCb[cbi++]);
            out.putInt(i);

            i = 0;
            i |= clip(tmpY[yi++]);
            i |= clip(tmpY[yi++]) << 20;
            i |= clip(tmpCb[cbi++]) << 10;
            out.putInt(i);

            i = 0;
            i |= clip(tmpCb[cbi++]) << 20;
            i |= clip(tmpY[yi++]) << 10;
            i |= clip(tmpCr[cri++]);
            out.putInt(i);

            i = 0;
            i |= clip(tmpY[yi++]);
            i |= clip(tmpY[yi++]) << 20;
            i |= clip(tmpCr[cri++]) << 10;
            out.putInt(i);
        }
        yOff += frame.getPlaneWidth(0);
        cbOff += frame.getPlaneWidth(1);
        crOff += frame.getPlaneWidth(2);
    }
    out.flip();

    return out;
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:50,代码来源:V210Encoder.java

示例6: transform

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public void transform(Picture img, Picture dst) {

        int[] y = img.getData()[0];
        int[][] dstData = dst.getData();

        int offChr = 0, offLuma = 0, offSrc = 0, strideSrc = img.getWidth() * 3, strideDst = dst.getWidth();
        for (int i = 0; i < img.getHeight() >> 1; i++) {
            for (int j = 0; j < img.getWidth() >> 1; j++) {
                dstData[1][offChr] = 0;
                dstData[2][offChr] = 0;

                rgb2yuv(y[offSrc], y[offSrc + 1], y[offSrc + 2], dstData[0], offLuma, dstData[1], offChr, dstData[2],
                        offChr);
                dstData[0][offLuma] = (dstData[0][offLuma] << upShift) >> downShift;

                rgb2yuv(y[offSrc + strideSrc], y[offSrc + strideSrc + 1], y[offSrc + strideSrc + 2], dstData[0],
                        offLuma + strideDst, dstData[1], offChr, dstData[2], offChr);
                dstData[0][offLuma + strideDst] = (dstData[0][offLuma + strideDst] << upShift) >> downShift;

                ++offLuma;

                rgb2yuv(y[offSrc + 3], y[offSrc + 4], y[offSrc + 5], dstData[0], offLuma, dstData[1], offChr,
                        dstData[2], offChr);
                dstData[0][offLuma] = (dstData[0][offLuma] << upShift) >> downShift;

                rgb2yuv(y[offSrc + strideSrc + 3], y[offSrc + strideSrc + 4], y[offSrc + strideSrc + 5], dstData[0],
                        offLuma + strideDst, dstData[1], offChr, dstData[2], offChr);
                dstData[0][offLuma + strideDst] = (dstData[0][offLuma + strideDst] << upShift) >> downShift;
                ++offLuma;

                dstData[1][offChr] = (dstData[1][offChr] << upShift) >> downShiftChr;
                dstData[2][offChr] = (dstData[2][offChr] << upShift) >> downShiftChr;

                ++offChr;
                offSrc += 6;
            }
            offLuma += strideDst;
            offSrc += strideSrc;
        }
    }
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:41,代码来源:RgbToYuv420p.java

示例7: transform

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public void transform(Picture img, Picture dst) {

        int[] y = img.getData()[0];
        int[][] dstData = dst.getData();

        int off = 0, offSrc = 0;
        for (int i = 0; i < img.getHeight(); i++) {
            for (int j = 0; j < img.getWidth() >> 1; j++) {
                dstData[1][off] = 0;
                dstData[2][off] = 0;
                
                int offY = off << 1;

                RgbToYuv420p.rgb2yuv(y[offSrc++], y[offSrc++], y[offSrc++], dstData[0], offY, dstData[1], off,
                        dstData[2], off);
                dstData[0][offY] = (dstData[0][offY] << upShift) >> downShift;

                RgbToYuv420p.rgb2yuv(y[offSrc++], y[offSrc++], y[offSrc++], dstData[0], offY + 1, dstData[1], off,
                        dstData[2], off);
                dstData[0][offY + 1] = (dstData[0][offY + 1] << upShift) >> downShift;

                dstData[1][off] = (dstData[1][off] << upShift) >> downShiftChr;
                dstData[2][off] = (dstData[2][off] << upShift) >> downShiftChr;
                ++off;
            }
        }
    }
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:28,代码来源:RgbToYuv422p.java

示例8: transform

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public void transform(Picture img, Picture dst) {

        int[] y = img.getData()[0];
        int[][] dstData = dst.getData();

        int offChr = 0, offLuma = 0, offSrc = 0, strideSrc = img.getWidth() * 3, strideDst = dst.getWidth();
        for (int i = 0; i < img.getHeight() >> 1; i++) {
            for (int j = 0; j < img.getWidth() >> 1; j++) {
                dstData[1][offChr] = 0;
                dstData[2][offChr] = 0;

                rgb2yuv(y[offSrc], y[offSrc + 1], y[offSrc + 2], dstData[0], offLuma, dstData[1], offChr, dstData[2],
                        offChr);
                dstData[0][offLuma] = dstData[0][offLuma];

                rgb2yuv(y[offSrc + strideSrc], y[offSrc + strideSrc + 1], y[offSrc + strideSrc + 2], dstData[0],
                        offLuma + strideDst, dstData[1], offChr, dstData[2], offChr);
                dstData[0][offLuma + strideDst] = dstData[0][offLuma + strideDst];

                ++offLuma;

                rgb2yuv(y[offSrc + 3], y[offSrc + 4], y[offSrc + 5], dstData[0], offLuma, dstData[1], offChr,
                        dstData[2], offChr);
                dstData[0][offLuma] = dstData[0][offLuma];

                rgb2yuv(y[offSrc + strideSrc + 3], y[offSrc + strideSrc + 4], y[offSrc + strideSrc + 5], dstData[0],
                        offLuma + strideDst, dstData[1], offChr, dstData[2], offChr);
                dstData[0][offLuma + strideDst] = dstData[0][offLuma + strideDst];
                ++offLuma;

                dstData[1][offChr] = dstData[1][offChr] >> 2;
                dstData[2][offChr] = dstData[2][offChr] >> 2;

                ++offChr;
                offSrc += 6;
            }
            offLuma += strideDst;
            offSrc += strideSrc;
        }
    }
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:41,代码来源:RgbToYuv420j.java

示例9: interpolate

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
/**
 * Interpolate an input picture to fill the output picture
 * 
 * @param in
 * @param out
 */
public void interpolate(Picture in, Picture out) {
    int[][] data = in.getData();

    ColorSpace inClr = in.getColor();
    ColorSpace outClr = out.getColor();
    for (int i = 0; i < data.length; i++) {
        interpolate(new Plane(data[i], new Size(in.getWidth() * inClr.compWidth[i], in.getHeight()
                * inClr.compHeight[i])),
                new Plane(data[i], new Size(in.getWidth() * outClr.compWidth[i], in.getHeight()
                        * outClr.compHeight[i])));
    }
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:19,代码来源:BilinearInterpolator2D.java

示例10: subImageWithFill

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public static void subImageWithFill(Picture in, Picture out, Rect rect) {
    int width = in.getWidth();
    int height = in.getHeight();
    ColorSpace color = in.getColor();
    int[][] data = in.getData();

    for (int i = 0; i < data.length; i++) {
        subImageWithFill(data[i], width >> color.compWidth[i], height >> color.compHeight[i],
                out.getPlaneData(i), rect.getWidth() >> color.compWidth[i],
                rect.getHeight() >> color.compHeight[i], rect.getX() >> color.compWidth[i],
                rect.getY() >> color.compHeight[i]);
    }
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:14,代码来源:ImageOP.java

示例11: transform

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public static void transform(BufferedImage img, Picture dst) {
    int[][] dstData = dst.getData();
    int[][] out = new int[4][3];

    byte[] bgr = new byte[3];
    ByteBuffer data = MappedImageFactory.getByteBuffer(img);

    int x, y = 0, h = img.getHeight(), w = img.getWidth();
    int offChr = 0, offLuma = 0, strideDst = dst.getWidth();
    for (int i = 0; i < h >> 1; i++) {
        x = 0;
        for (int j = 0; j < w >> 1; j++) {
            get(data, x, y, w, bgr);
            rgb2yuv(bgr, out[0]);
            dstData[0][offLuma] = out[0][0];

            get(data, x, y + 1, w, bgr);
            rgb2yuv(bgr, out[1]);
            dstData[0][offLuma + strideDst] = out[1][0];

            ++offLuma;

            get(data, x + 1, y, w, bgr);
            rgb2yuv(bgr, out[2]);
            dstData[0][offLuma] = out[2][0];

            get(data, x + 1, y + 1, w, bgr);
            rgb2yuv(bgr, out[3]);
            dstData[0][offLuma + strideDst] = out[3][0];

            ++offLuma;

            dstData[1][offChr] = ((out[0][1] + out[1][1] + out[2][1] + out[3][1] + 2) >> 2);
            dstData[2][offChr] = ((out[0][2] + out[1][2] + out[2][2] + out[3][2] + 2) >> 2);

            ++offChr;
            x += 2;
        }
        offLuma += strideDst;
        y += 2;
    }
}
 
开发者ID:Helioviewer-Project,项目名称:JHelioviewer-SWHV,代码行数:43,代码来源:JHVRgbToYuv420j8Bit.java

示例12: upShift

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
private void upShift(Picture dct) {
    for (int[] is : dct.getData()) {
        upShift(is, 0, is.length);
    }
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:6,代码来源:Mpeg2Prores.java

示例13: createFrame

import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
public static Frame createFrame(Frame pic) {
    Picture comp = pic.createCompatible();
    return new Frame(comp.getWidth(), comp.getHeight(), comp.getData(), comp.getColor(), pic.getCrop(),
            pic.frameNo, pic.mvs, pic.refsUsed, pic.poc);
}
 
开发者ID:PenoaksDev,项目名称:OpenSpaceDVR,代码行数:6,代码来源:Frame.java


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