适当缩放UIImage以显示全屏而不会出现任何失真

时间:2013-05-07 06:25:20

标签: iphone uiimage

当我们在iphone上拍照时,图像以全屏显示,顶部没有任何“灰条”,即图像以320 * 500的尺寸显示。我想在我的应用程序中显示该图像,但该应用程序的最大框架大小为320 * 480。因此,当我尝试将我的应用中的图像显示为全屏时,它会显示为拉伸图像。我尝试了所有contentMode个选项,但它没有用。 那么,如何缩放图像或如何固定图像的大小,使图像显示为原样,但在较小的框架中没有任何扭曲或类似iphone的“照片”应用程序?

1 个答案:

答案 0 :(得分:1)

拍摄照片时,实际上看不到全尺寸照片,只能看到适合显示器的部分(照片的分辨率大于iPhone的显示分辨率)。因此,如果您想拍摄结果图像并将其全屏显示,那么您需要进行一些简单的计算以缩放图像,使其比例保持正确:

// We know the desired resolution. It's full screen (320, 480) or (640, 960).
// Now we want to determine the destination imageView frame with maximum dimensions
// for it to fit the screen AND leave the image's proportions
float minScale = MIN(screenResolution.width/actualImgWidth, screenResolution.height/actualImgHeight);
// With minScale one side will fit full screen, and the other will occupy a bit smaller space than the screen allows
destImgView.bounds = CGRectMake(0, 0, minScale*actualImgWidth, minScale*actualImgHeight);
destImgView.image = actualImg;