【问题标题】:Android onpreviewframe:Preview on image views shows green/pink image on tabletAndroid onpreviewframe:图像视图上的预览在平板电脑上显示绿色/粉红色图像
【发布时间】:2014-02-13 14:16:47
【问题描述】:

我需要从相机获取预览并将其显示在 Imageview 上。 代码完成如下

public void onPreviewFrame(byte[] data, Camera camera){
        yuvimage = new YuvImage(data, parameters.getPreviewFormat(), width, height, null);
        yuvimage.compressToJpeg(new Rect(0,0,parameters.getPreviewSize().width,parameters.getPreviewSize().height), 90, outstr);
        bmp = BitmapFactory.decodeByteArray(outstr.toByteArray(), 0, outstr.size());        
        camera.addCallbackBuffer(data);
    }

此代码工作正常,如果 bmp 传递给 imageview,它在大多数设备上显示清晰的彩色图像,但在平板电脑上,它显示绿色/粉红色图像。 如果使用surfaceview直接显示预览,那么它会在所有设备上显示清晰的颜色预览..

任何建议表示赞赏..

【问题讨论】:

标签: android image-processing android-camera android-ui


【解决方案1】:

如果图像看起来有点正确,但颜色有点奇怪,那么我猜 问题出在图片格式上。我首先尝试将 parameters.getPreviewFormat() 更改为 ImageFormat.NV21 并查看是否可以解决问题。

我以前使用过基本相同的代码,从来没有遇到过问题。 (尽管您应该将渲染推送到单独的线程,并且可能使用 RenderScript 来转换图片)。

【讨论】:

    猜你喜欢
    • 2020-10-08
    • 2018-09-15
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多