iPhone中的高品质圆角图像

时间:2012-09-26 05:04:46

标签: iphone uiimageview uiimage

在我的应用中,我想要高质量的图像。图像从Facebook好友列表中加载。当图像以较小的尺寸(50 * 50)加载时,其质量很好。但是当我试图以更大的尺寸(280 * 280)拍摄图像时,图像质量会降低。

enter image description here

对于圆角m做:

self.mImageView.layer.cornerRadius = 10.0;
self.mImageView.layer.borderColor = [UIColor blackColor].CGColor;
self.mImageView.layer.borderWidth = 1.0;
self.mImageView.layer.masksToBounds = YES;  

使用以下代码获取图像m:

self.mImageView.image = [self  imageWithImage:profileImage scaledToSize:CGSizeMake(280, 280)];

- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
UIGraphicsBeginImageContextWithOptions(newSize, YES,0.0);
CGContextRef context = CGContextRetain(UIGraphicsGetCurrentContext());
CGContextTranslateCTM(context, 0.0, newSize.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSetInterpolationQuality(context, kCGInterpolationLow);
CGContextSetAllowsAntialiasing (context, TRUE);   
CGContextSetShouldAntialias(context, TRUE);
CGContextDrawImage(context, CGRectMake(0.0f, 0.0f, newSize.width, newSize.height),image.CGImage);
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
UIGraphicsEndImageContext();
return newImage;

}

我已多次检查我的代码,但无法弄清楚如何使图像完美。那么,伙计们如何改善这种图像质量? Thanx提前...

1 个答案:

答案 0 :(得分:1)

  

......图像质量下降。

图像的“质量”仍然存在。 (从技术上讲,你通过调整大小来引入一些错误,但这不是真正的问题......)

那么,您想将50x50像素图像缩放到280x280像素吗?源信号中不存在信息/细节。理想情况下,您可以根据要显示的尺寸下载更合适尺寸的图像。

如果这不是一个选项,您可以通过适当的重采样和/或插值来减少像素化。这样可以简化程序放大5.6的像素 - 图像看起来像是像素化和模糊之间的交叉(请参阅CGContextSetAllowsAntialiasingCGContextSetShouldAntialiasCGContextSetInterpolationQuality和相关的API来完成这使用石英)。