首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安卓byte[]将在Camera.onPreviewFrame中镜像

安卓byte[]将在Camera.onPreviewFrame中镜像
EN

Stack Overflow用户
提问于 2011-03-07 02:31:47
回答 4查看 37.1K关注 0票数 18

在尝试使用BitmapFactory.decodeByteArrayCamera.onPreviewFramebyte[]转换为Bitamp时,出现错误SkImageDecoder::Factory returned null

以下是我的代码:

代码语言:javascript
复制
public void onPreviewFrame(byte[] data, Camera camera) {
    Bitmap bmp=BitmapFactory.decodeByteArray(data, 0, data.length);
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-18 14:56:55

经过很长一段时间,我找到了答案。这就是..。

我没有使用BitmapFactory,而是使用我的自定义方法将此byte[] data解码为有效的图像格式。要将图像解码为有效的图像格式,需要通过调用camera.getParameters().getPictureFormat()知道相机正在使用哪种图像格式。这将返回由ImageFormat定义的常量。知道格式后,使用适当的编码器对图像进行编码。

在我的例子中,byte[] dataYUV格式的,所以我寻找YUVBMP的转换,这解决了我的问题。

票数 4
EN

Stack Overflow用户

发布于 2011-06-02 04:58:14

这已经很难找到了!但是从API8开始,android.graphics中就有了一个YuvImage类。它不是Image的后代,所以你能做的就是把它保存到Jpeg,但是如果你需要的话,你可以把它保存到内存流,然后加载到Bitmap Image中。

代码语言:javascript
复制
import android.graphics.YuvImage;

@Override
public void onPreviewFrame(byte[] data, Camera camera) {
    try {
        Camera.Parameters parameters = camera.getParameters();
        Size size = parameters.getPreviewSize();
        YuvImage image = new YuvImage(data, parameters.getPreviewFormat(),
                size.width, size.height, null);
        File file = new File(Environment.getExternalStorageDirectory()
                .getPath() + "/out.jpg");
        FileOutputStream filecon = new FileOutputStream(file);
        image.compressToJpeg(
                new Rect(0, 0, image.getWidth(), image.getHeight()), 90,
                filecon);
    } catch (FileNotFoundException e) {
        Toast toast = Toast
                .makeText(getBaseContext(), e.getMessage(), 1000);
        toast.show();
    }
}
票数 34
EN

Stack Overflow用户

发布于 2012-09-12 21:39:15

从Android3.0开始,你可以使用TextureViewTextureSurface来显示摄像头,然后使用mTextureView.getBitmap()来检索友好的RGB预览帧。

the TextureView docs中给出了一个非常简单的示例来说明如何做到这一点。请注意,您必须将应用程序或活动设置为硬件加速,方法是将android:hardwareAccelerated="true"放入清单中。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5212531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档