iPhone图库应用程序将照片从4:3的纵横比裁剪为3:2,如何



使用UIImagePickerController拍摄的照片的纵横比为4:3。然而,全屏纵横比为3:2。因此,图库应用程序正在发挥一些魔力,以3:2的纵横比显示照片。当您在全屏视图中缩小时,照片将以4:3的纵横比显示。有人能阐明如何做到这一点吗?在过去的两个星期里,我一直为此伤透了脑筋。

真的很感谢你的帮助!!

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

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

相反,如果你要匹配宽度,那么你会把4:3的4变成3:2的3。所以你可以将整个图像缩放3/4。由于宽度和高度的缩放量相同,所以末端的有效高度将是4:3的3,缩放3/4,得到9/4——略多于2。因此,您将略多于填充屏幕。

照片应用程序所做的是以初始缩放显示图片,以便将存储图像的宽度与显示器的宽度相匹配。如果存储的图像是3264x2448(我认为它在iPhone 4S和5上),那么在iPhone 4S上——使用点而不是像素——它按480/3264的比例缩放。如果你计算出来,它会使图像的最终高度非常接近360磅,比屏幕宽40磅。

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

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

最新更新