1

我想很多人都像我一样对这几个尺寸感到困惑。
让我声明一下:比率 = 宽度/高度。

在surfaceView中,我们设置previewSize和pictureSize作为参数。
但是如何选择最佳尺寸?
如果我想捕获全屏图像,previewSize 和pictureSize 应该设置为什么?
有些情况下预览是全屏的,但保存的图片比预览屏幕的图片大,为什么?
还有,如果previewSize和pictureSize的比例不同,有什么问题吗?
而且,是否需要将 previewSize 和 screenSize 的比例设置为相同?
老实说,我只是想截取全屏图片保存为jpg/png,保存的图片的宽高和预览图完全一样,怎么办?
我只是对screenSize、previewSize和pictureSize之间的关系感到困惑。感谢。

4

1 回答 1

9

所以让我们从定义开始,据我所知。

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

PreviewSize:这通常是光学传感器可以在本地快速预览帧的图像大小。传感器通常提供支持值的列表。这些通常都是相同的纵横比。支持的 previewSize 可能与 ScreenSize重叠。如果是这样,并且您想显示全尺寸的相机视图,那就太好了!不管是什么,都是你想要的。否则,它可能只是最接近的值,之后由您决定。

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

屏幕尺寸预览尺寸通常在扫描潜在图像时与图像的呈现最相关。这些通常是传感器目前能够看到的任何内容的真正不集中的​​快速渲染,并将它们显示给用户(在某种意义上几乎就像一个视频源)。在这些情况下,您希望尽可能提供最好的,但有时可能无法设置相机以充分利用显示器。即前置摄像头通常以这样一种方式安装,即它被设置为捕获纵向类型的图像,并且预览可能不会利用屏幕的纵横比。如果您没有对预览帧进行任何操作,只是将它们显示在屏幕上,这纯粹是装饰性的。否则,如果这是一个问题,那么它在那个时候更具体。例如,前置摄像头可能有 4:3 previewSize 和 ScreenSize 的比例为 16:9。您最终会得到可能适合您正在做的事情的信箱或拉伸解决方案。

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

几乎可以归结为这一点。如果你有足够的带宽、存储空间和内存来做所有事情,那么高分辨率是很棒的。如果没有,您可以随时扩展。如果按比例缩放,我通常更喜欢按比例缩小,因为它通常会产生更好的显示图像,而不是按比例放大。

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

于 2012-09-17T04:47:01.413 回答