在使用摄像头的应用程序中,我需要显示摄像头的预览,我可以通过获取所有支持的预览大小来设置预览大小,并找到最佳的预览大小。我是否也应该为相机设置最佳图片大小?如果有,预览大小和图片大小有什么不同?
目前,我使用下面的方法找到最佳预览大小
int minDiff = Integer.MAX_VALUE;
for (SizePair sizePair : validPreviewSizes) {
Size size = sizePair.previewSize();
int diff =
Math.abs(size.getWidth() - desiredWidth) + Math.abs(size.getHeight() - desiredHeight);
if (diff < minDiff) {
selectedPair = sizePair;
minDiff = diff;
}
}使用此方法会在某些手机中显示错误的预览大小。有没有人能提出一个更好的逻辑来获得最佳的预览大小?
发布于 2017-02-08 13:11:54
图片大小这是告诉相机拍照时生成的图像的大小。如果它与原始分辨率的纵横比相同,则将直接从该分辨率缩放。如果纵横比不同,则将从原始大小裁剪。根据我的经验,getSupportedPictureSizes返回的最大尺寸是摄像头的本机分辨率。
预览大小这是在屏幕上显示的图像预览的大小。它的纵横比可能与原始大小或图片大小不同,从而导致进一步裁剪
若要在屏幕上看到的内容与拍摄照片时生成的图像之间获得最接近的匹配,请尝试选择宽高比与所选图片大小的宽高比尽可能接近的预览大小。我通常会尽量使两者的大小接近原生大小。
请同时查看this link
https://stackoverflow.com/questions/42105087
复制相似问题