-1

我创建了一个包含高分辨率图像的 UIImageView。问题是该图像的分辨率太高而无法放入 imageView。imageView 的大小是 92 x 91(所以它很小)。它包含一个 UIImage,其分辨率太高,因此在 UIImageView 中看起来很难看。那么如何降低该 UIImage 的分辨率呢?

我的 UIImageView 代码:

UIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:pngFilePath]];
    myImageView.frame = CGRectMake(212.0, 27, 92,91);
4

4 回答 4

2

看看这个

https://stackoverflow.com/a/2658801

这将帮助您根据需要调整图像大小

将方法添加到您的代码并像这样调用

UIImage *myImage =[UIImage imageWithContentsOfFile:pngFilePath];
UIImage *newImage =[UIImage imageWithImage:myImage scaledToSize:CGSizeMake(92,91)];
于 2013-05-25T12:39:01.040 回答
1

您可以使用此方法调整图像大小,该方法返回调整大小的图像:

 -(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    // Here pass new size you need
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();
    return newImage;
}

希望它可以帮助你。

于 2013-05-25T12:43:19.837 回答
0

试试这个

     myImageView.contentMode = UIViewContentModeScaleToFill;
于 2013-05-25T12:08:33.360 回答
0

您需要缩小图像尺寸,这将降低分辨率,使其更易于存储。我实际上写了一个类(基于 SO 的一些东西)就是这样做的。在我的github上,看一下:

https://github.com/pavlovonline/UIImageResizer

主要方法是

-(UIImage*)resizeImage:(UIImage*)image toSize:(CGFloat)size

所以你给这个方法你想要缩小图像的大小。如果高度大于宽度,它将自动计算中间并为您提供一个完美居中的正方形。宽度大于高度也是如此。如果您需要非正方形的图像,请自行调整。

所以你会得到一个缩小的 UIImage,然后你可以把它放到你的 UIImageView 中。也节省一些内存。

于 2013-05-25T12:14:47.343 回答