Android相机中screenSize,previewSize和pictureSize之间的关系是什么?

jjL*_*Lin 1 camera android

我想很多人在这几种尺寸之间感到像我一样困惑.
让我宣布一些事情:比率=宽度/高度.

在surfaceView中,我们将previewSize和pictureSize设置为参数.
但如何选择最佳尺寸?
如果我想捕获全屏图像,那么previewSize和pictureSize应该设置为什么?
有些情况下预览是全屏但是保存的图像比预览屏幕图像大,为什么?
另外,如果previewSize和pictureSize的比例不同,有什么问题吗?
而且,是否有必要将previewSize和screenSize的比例设置为相同?
说实话,我只想捕获全屏图像并将其保存为jpg/png,保存的图像与预览的宽度和高度完全相同,怎么做?
我只是混淆了screenSize,previewSize和pictureSize之间的关系.谢谢.

Gre*_*lli 9

所以让我们从定义开始,正如我所理解的那样.

ScreenSize:物理显示的物理尺寸,这是设备可用于向用户显示内容的最大像素大小.这几乎是一个静态值.

PreviewSize:这通常是光学传感器可以快速预览帧的图像大小.传感器通常提供支持的值列表.这些通常都是相同的宽高比.受支持的previewSize可能与ScreenSize重叠.如果是这样,你想要显示全尺寸的相机视图,太棒了!无论是哪一个,都是你想要的.否则它可能只是最接近的值,在此之后由你决定.

PictureSize:这是传感器实际捕获的大小.这实际上与其他两个值无关.它通常会与一些previewSize支持的值重叠.但它的范围可以更大,并且通常支持更好的分辨率,因为这毕竟是最终产品.很多时候,在能够显示比ScreenSize更好的分辨率的设备上捕获可能看起来更好.这些可能是不同的.

ScreenSizePreviewSize通常与扫描潜在图像时图像的呈现最相关.这些通常是非常不专心的快速渲染,无论传感器目前能够看到什么,并将其显示给用户(在某种意义上几乎就像一个视频输入).在这些情况下,您希望尽可能提供最佳效果,但有时可能无法设置相机以充分利用显示屏.即,前置摄像头通常以这样的方式安装,即设置用于捕获肖像类型的图像,并且预览可能不利用屏幕的宽高比.如果你没有对预览框架做任何事情,除了在屏幕上显示它们之外,这纯粹是装饰性的.否则,如果这是一个问题,那么它在那个点上更具​​应用性.例如,前置摄像头可能具有4:3的previewSize,而ScreenSize的比例为16:9.你最终得到的信箱或拉伸解决方案可能适合你正在做的事情.

就开发人员而言,CaptureSize通常与PreviewSize无关.只有在捕获的文件只会在给定设备上显示并且从不操作的情况下,它与ScreenSize有轻微关系.即如果你只为这个应用程序拍摄图像,只在这个应用程序上显示它们.如果捕获尺寸很大,屏幕很小,那就浪费了一点空间.另一方面,如果捕获小于屏幕尺寸并且唯一目的是仅在屏幕上显示图像,如果捕获小于屏幕,则可能必须按比例放大.它通常与内存,文件大小和捕获质量的权衡更相关,以便稍后在某些其他活动或过程中进行操作.

几乎可以归结为这一点.如果您有足够的带宽,存储和内存来执行所有操作,则高分辨率非常有用.如果没有,你可以随时扩展.如果缩放,我更喜欢缩小,通常只是因为它经常导致更好的显示图像,而不是放大.

我越是想到这一点,这总体上是一个模糊的问题.希望这会带来一些好处.