将字节数组或位图转换为图片

时间:2013-12-15 13:03:09

标签: android bitmapimage data-conversion

我正在尝试使用jcodec将图像转换为视频。获取图像的功能是:

public void encodeNativeFrame(Picture pic) throws IOException

我可以发送到这个函数位图或同一位图的字节数组,转换为YUV420。

我的问题是如何将Bitmap转换为Picture或将字节数组(byte [])转换为Picture。

1 个答案:

答案 0 :(得分:1)

首先,您需要创建一个位图:

Bitmap bitmap = BitmapFactory.decodeByteArray(yourByteArray, 0, yourByteArray.length);

然后,获取一个画布,您将在其中记录=

Picture picture = new Picture();
Canvas canvas = picture.beginRecording(bitmap.getWidth(), bitmap.getHeight());

然后,在画布上绘制位图

canvas.drawBitmap(bitmap, null, new RectF(0f, 0f, (float) bitmap.getWidth, (float) bitmap.getHeight), null);

然后,结束记录

picture.endRecording();

然后,图片将包含您的位图。

这是一种方法:

public Picture fromByteArray(byte[] byteArray){
    Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
    Picture picture = new Picture();
    Canvas canvas = picture.beginRecording(bitmap.getWidth(), bitmap.getHeight());
    canvas.drawBitmap(bitmap, null, new RectF(0f, 0f, (float) bitmap.getWidth, (float) bitmap.getHeight), null);
    picture.endRecording();
    return picture;
}