android - Android相机中的screenSize、previewSize和pictureSize是什么关系?

标签 android camera

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

在surfaceView中,我们设置了previewSize和pictureSize作为参数。
但如何选择最佳尺寸??
如果我想捕获全屏图像,previewSize 和 pictureSize 应该设置多少?
有一些情况是全屏预览,但保存的图片比预览屏幕的图片大,为什么?
还有,如果previewSize和pictureSize的比例不一样,会不会有什么问题?
还有,previewSize和screenSize的比例有必要设置成一样吗?
老实说,我只想截取全屏图片,保存为jpg/png,保存的图片和预览的宽高一模一样,怎么办?
我只是混淆了 screenSize、previewSize 和 pictureSize 之间的关系。 谢谢。

最佳答案

那么让我们从我理解的定义开始。

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

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

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

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

就开发人员而言,

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

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

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

关于android - Android相机中的screenSize、previewSize和pictureSize是什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12452996/

相关文章:

android - E/SpannableStringBuilder(18909): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

android - 如何从 Android 中的库类访问应用程序模块类?

ios - 切换相机权限会导致崩溃

c# - 处理多相机捕获 UWP

iOS 5 相机光圈无法打开

java - 如何显示 fragment 中相机看到的内容?

android - 新的 gcmSender 值停止所有推送通知工作

java - 代码粉碎安卓

android - 右侧的 BottomAppBar 项目

c++ - OpenCV 计算相机位置和旋转