我正在使用自定义相机。因此,当我从原生相机中捕获图像时,它的尺寸是 1.76MB 。但是,当我从自定义相机中捕获它 977.86KB 时。我已经为相机设置了以下属性......
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
parameters.setPictureSize(mPreviewSize.width, mPreviewSize.height);
parameters.setRotation(90);
parameters.setJpegQuality(100);
parameters.setPictureFormat(ImageFormat.JPEG);
android.util.Log.i(TAG, "####### setting FLASH_MODE_TORCH");
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
parameters.setFocusMode("continuous-picture");
if (parameters.getSupportedFocusModes().contains("continuous-picture")) {
parameters.setFocusMode("continuous-picture");
mCamera.setParameters(parameters);
} else {
Log.i(TAG, "FOCUS MODE continuous-picture NOT SUPPORTED......!!!");
}
mCamera.setParameters(parameters);
mCamera.setDisplayOrientation(90);
mCamera.setPreviewDisplay(mHolder);
mCamera.startPreview();
那么,问题出在哪里?是否有任何属性/参数我缺少但需要设置为相机才能获得预期结果?
答案 0 :(得分:0)
您可以将图片大小设置为预览尺寸。它不仅很小,甚至可能导致RuntimeException。
Camera.Parameters有一个单独的getSupportedPictureSizes()
方法。您应该选择其中一种支持的图片尺寸,除了极少数非常奇怪的情况外,这将有效。
预览尺寸也是如此。从getSupportedPreviewSizes()
返回的列表中选择最符合您期望的那个。此外,请注意,某些尺寸仅由前置摄像头支持,有些尺寸仅由后置摄像头支持。这意味着,在之后从后向前切换时,请致电getSupportedPictureSizes()
。