启用相机时,预览屏幕中的图像格式是什么

时间:2014-05-09 05:55:38

标签: android

启用相机时预览屏幕中的图像格式是什么?

RGB?还是YUV?还是其他人?

所以当我拍照时,我基本上要求Andriod将屏幕上的任何内容从YUV格式转换为JPEG

当我录制视频时,Android会将该格式转换为mp4

2 个答案:

答案 0 :(得分:2)

是NV21。请参阅online document。 要将数据保存为JPEG,您可以执行以下操作:

            YuvImage im = new YuvImage(preview_data, ImageFormat.NV21, preview_width, preview_height, null);
            int quality = 90;
            Rect rect = new Rect(0, 0, preview_width, preview_height);
            FileOutputStream output = new FileOutputStream("/sdcard/test.jpg");
            im.compressToJpeg(rect, quality, output);
            output.flush();
            output.close();

答案 1 :(得分:0)

还有另一种方式,我如何做同样的事,可以帮助你: 拍照:

  1. 初始化相机并设置onPictureTaken方法。

    相机相机= Camera.open();     if(camera!= null)     {         camera.takePicture(null,null,jpeg);     }

  2. 现在使用名称" jpeg"实现Camera.PictureCallback,您将以JPEG格式获取捕获的图像

    1. 在onSurfaceChanged方法中设置所需的图像格式

      public void surfaceChanged(SurfaceHolder holder,int format,int w,int h) {   if(holder!= null&& camera!= null)   {     camera.stopPreview();     Camera.Parameters parameters = camera.getParameters();     parameters.setPictureFormat(PixelFormat.JPEG);     camera.setParameters(参数);     camera.setPreviewDisplay(保持器);     camera.startPreview();   } }

    2. 录制视频

      1. 初始化相机。

        相机相机= Camera.open();

      2. init媒体录制器并在录制器上设置所需的视频格式

      3. if(camera!= null)   { 尝试{         camera.stopPreview();

            MediaRecorder recorder = new MediaRecorder();
            recorder.setCamera(camera);
           recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
            recorder.prepare();
        

        }

        来源:Take pictureRecord video