2017-10-02 44 views
0

camera2 apiを使用しようとすると、ユーザがタップ/アンタップしてズームインする機能が必要です&ズームアウト。画像ズーム後のCamera2 Apiでのキャプチャ

は、それは、プレビューのために非常に完璧に動作しますが、私はズーム後の画像を撮影したときに、それは私に非ズームビットマップを取得

   CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE); 
       CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId); 
       float maxzoom = (characteristics.get(CameraCharacteristics.SCALER_AVAILABLE_MAX_DIGITAL_ZOOM)) * 10; 
       Rect m = characteristics.get(CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE); 

       int minW = (int) (m.width()/maxzoom); 
       int minH = (int) (m.height()/maxzoom); 
       int difW = m.width() - minW; 
       int difH = m.height() - minH; 
       int cropW = 0, cropH = 0; 
       if (!touchFlagForZoom) { 
        cropW = difW/100 * (int) 25; 
        cropH = difH/100 * (int) 25; 
        touchFlagForZoom = true; 

       } else { 
        cropW = difW/100 * (int) 0; 
        cropH = difH/100 * (int) 0; 
        touchFlagForZoom = false; 

       } 
       cropW -= cropW & 3; 
       cropH -= cropH & 3; 
       Rect zoom = new Rect(cropW, cropH, m.width() - cropW, m.height() - cropH); 
       captureRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, zoom); 


       try { 
        cameraCaptureSessions 
          .setRepeatingRequest(captureRequestBuilder.build(), null, null); 
       } catch (CameraAccessException e) { 
        e.printStackTrace(); 
       } catch (NullPointerException ex) { 
        ex.printStackTrace(); 
       } 

問題 をズームするために、このコードを使用します。

答えて

0

まだキャプチャ要求に同じトリミング領域を設定していますか?

クロップ領域はフレームごとの設定なので、キャプチャ依頼でデフォルトのクロップ領域を使用すると、ズームではなくフルFOVが得られます。

関連する問題