本文整理汇总了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;
}
示例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;
}
示例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));
}
示例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));
}
示例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;
}
示例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;
}
}
示例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;
}
}
}
示例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;
}
}
示例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])));
}
}
示例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]);
}
}
示例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;
}
}
示例12: upShift
import org.jcodec.common.model.Picture; //导入方法依赖的package包/类
private void upShift(Picture dct) {
for (int[] is : dct.getData()) {
upShift(is, 0, is.length);
}
}
示例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);
}