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();
}
問題 をズームするために、このコードを使用します。