JavaCV AndroidFrameConverter在保存到本地存储时转换了Bitmap不完美

时间:2016-05-24 05:25:41

标签: android javacv

我正在尝试使用Android帧转换器将图像数据的字节数组转换为位图,如下所示:

((ByteBuffer) frame.image[0].position(0)).put(event.getImageData());// frame is a javacv frame.
backCamFilter.push(frame); //FFmpegFrameFilter
pulledFrame = backCamFilter.pull();
byte[] data = ((ByteBuffer)pulledFrame.image[0].position(0)).array();
Frame convertedFrame = converter.convert(data, 480, 480);//AndroidFrameConverter
Bitmap bitmap = converter.convert(convertedFrame);
if (bitmap != null) {
    outputStream = new FileOutputStream(Constants.COVER_IMAGE_FOLDER + "/" + System.currentTimeMillis() + ".jpg");
    bitmap.compress(Bitmap.CompressFormat.JPEG, 75, outputStream);
    Log.d(TAG, "writeCoverImage: " + count);
}

上面的代码生成下面添加的图像,因为您可以看到图像的左侧部分包含图像右侧部分的一部分。你们中的任何人都知道为什么会发生这种情况或任何其他解决方案吗?

我也试过转换' pullingFrame'直接进入位图,但它给了我" RuntimeException:缓冲区不足以容纳像素"。

enter image description here enter image description here

0 个答案:

没有答案