我正在尝试使用jcodec将图像转换为视频。获取图像的功能是:
public void encodeNativeFrame(Picture pic) throws IOException
我可以发送到这个函数位图或同一位图的字节数组,转换为YUV420。
我的问题是如何将Bitmap转换为Picture或将字节数组(byte [])转换为Picture。
答案 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;
}