2014-05-09 19 views
1

什麼是預覽屏幕的圖像格式時,攝像頭啓用?什麼是預覽屏幕的圖像格式時,攝像頭讓

它是RGB?或者YUV?還是別人?

因此,當我拍照時,我基本上要求Andriod將屏幕上的任何內容從YUV格式轉換爲JPEG

當我錄製視頻,Android版格式轉換爲mp4

回答

0

這是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(); 
0

有一種替代方法,我如何做同樣的,可以幫助你: 對於拍照:

  1. 的init攝像頭並設置onPictureTake方法。

    相機相機= Camera.open(); 如果(相機!= NULL){ camera.takePicture(NULL,NULL,JPEG); }

現在以JPEG格式實現與名稱 「JPEG」 Camera.PictureCallback,在其中將得到捕捉到的圖像

  • 組所希望的圖像在onSurfaceChanged格式方法

    公共無效surfaceChanged(SurfaceHolder保持器,INT格式,INT瓦特,INT 1H) { 如果(支架!= NULL & &相機!= NULL){ camera.stopPreview(); Camera.Parameters parameters = camera.getParameters(); parameters.setPictureFormat(PixelFormat.JPEG); camera.setParameters(parameters); camera.setPreviewDisplay(holder); camera.startPreview(); }}

  • 記錄視頻

    1. 初始化相機。

      Camera camera = Camera.open();

    2. 初始化媒體記錄器和設置所需的視頻格式的錄像機

    如果(相機!= NULL){ 嘗試 { 相機。stopPreview();

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

    }

    資料來源:Take picture,爲Record video