为什么摄像头启动的初期图片清晰度很差,怎么解决哦?

天王盖地虎626 发布于 2017/06/27 15:30
阅读 57
收藏 0

我现在遇到一个问题,每次摄像头第一次启动的时候,通过

makeBitmap(data, 640 * 480);

方法后,得到bitmapSource

然后photot_img.setImageBitmap(bitmapSource);后

发现图片清晰度很差,这种情况,往往发生在摄像头第一次启动阶段,过了一段时间后,再photot_img.setImageBitmap(bitmapSource);

图片显示的就很清晰了,请问这是怎么回事啊?如何去解决哦?

以下是部分代码集合:

private Bitmap bitmapSource;
private ImageView photot_img;

bitmapSource = makeBitmap(data, 640 * 480);

photot_img.setImageBitmap(bitmapSource);

其中

public static Bitmap makeBitmap(byte[] jpegData, int maxNumOfPixels) {
        try {
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = true;
            YuvImage yuvimage = new YuvImage(jpegData, ImageFormat.NV21,640,480,null);//data是onPreviewFrame参数提供

            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            yuvimage.compressToJpeg(new Rect(0, 0, 640,480),80, baos);// 80--JPG图片的质量[0-100],100最高
            byte[] rawImage =baos.toByteArray();
            Bitmap bitmap = BitmapFactory.decodeByteArray(rawImage, 0,
                    rawImage.length);
            return bitmap;
        } catch (OutOfMemoryError ex) {
            Log.e("zmg", "Got oom exception ", ex);
            return null;
        }
    }

加载中
返回顶部
顶部