0

UIImagePickerController使用4:3 的宽高比拍摄的照片。但是,全屏纵横比为 3:2。所以画廊应用程序正在做一些魔术来将照片显示为 3:2 的纵横比。在全屏视图中缩小时,照片会以 4:3 的纵横比显示。谁能阐明如何做到这一点?在过去的两周里,我一直在为此头疼。

真的很感谢帮助!!

4

2 回答 2

0

要将 4:3 的图像放入 3:2 的空间,您可以匹配高度或匹配宽度。

如果您要匹配高度,那么您会将 3 in 4:3 变成 2 in 3:2。因此,您将整个图像缩放 2/3。由于您将以相同的量缩放宽度和高度,因此缩放后的有效高度将是 4:3 的 4 缩放 2/3,得到 8/3 - 略小于 3。因此,您不会完全填满屏幕。

相反,如果您要匹配宽度,那么您会将 4 in 4:3 变成 3 in 3:2。因此,您会将整个图像缩放 3/4。由于您将以相同的量缩放宽度和高度,因此最后的有效高度将是 3 从 4:3 缩放 3/4,得到 9/4 - 比两个多一点。因此,您将比填满屏幕略多。

因此,照片应用程序所做的就是以初始缩放显示图片,以使存储图像的宽度适合显示器的宽度。如果存储的图像是 3264x2448(我认为它在 iPhone 4S 和 5 上),那么在 iPhone 4s 上——使用点而不是像素——它的比例为 480/3264。如果你解决了这个问题,它会让图像的最终高度非常接近 360pt,比屏幕宽 40pt。

就 UIKit 而言,这可能意味着将 aUIImage放入 aUIScrollView并将初始值设置zoomScale为 480/3264(即大约 0.15)。尽管仍有一些手动工作要做,但滚动视图可以帮助您放大和缩小 - 请参阅本教程。通过将 a 设置minimumZoomScale为 320/2448(即大约 0.13),您将自动获得尽可能缩小的行为,最终在屏幕上显示整个 4:3 图像。

于 2012-11-18T17:34:49.850 回答
0

不确定您是如何获得图像的,但您可能已经获得了图像的一种表示形式。其中一种表示专门用于获取快速的全屏 CGImage,另一种表示将返回 FullResolution。全屏将是设备所需的任何内容(iPhone4 上为 640x960),全分辨率将是 8MP 图片。

于 2012-11-18T17:41:21.110 回答