2012-01-14 62 views
2

我使用这种方法来将图像调整到其原始尺寸的双:iOS图像调整大小:是否有比kCGInterpolationHigh更好的插值?

- (UIImage *)doubleSizeImage:(UIImage *)image { 
    CGSize newSize = CGSizeMake(image.size.width*2, image.size.height*2); 
    UIGraphicsBeginImageContext(newSize); 
    CGContextSetInterpolationQuality(UIGraphicsGetCurrentContext(), kCGInterpolationHigh); 
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

事实是,内插仍然较差:我可以看到良好的像素化效应,其中,例如,iOS的Safari浏览器没有按缩放页面时没有。所以我想知道是否有更好的方法来升级图像,也使用第三方库/类别或类似的东西?谢谢!

+0

您确定您实际使用的是kCGInterpolationHigh吗?如果你摆脱那条线......如果它看起来一样吗?只是双重检查。此外,如果您将这个与Safari的结果分享给我们的信息,这将会很有帮助。 – 2012-06-29 21:08:16

回答

2

任何时候你插入,你会得到某种文物。

Safari不会在页面上获取工件,因为页面本质上是一个矢量文档,包含轮廓字体和可调整大小的对象 - 但是如果您查看页面上的栅格图像,则会看到如果将它吹动足够大,图像确实会显示文物。野生动物园并不免疫;没有什么是。

+0

我知道,我不是在谈论矢量部分。鉴于相同的缩放比例,safari上的图像可以更好地进行内插:当然有伪影,但更好的“模糊”。在我的应用程序中,相同尺寸的相同图像更像素化。但是,嘿,我想最后它只是好的。 – 2012-01-16 11:29:08

+0

@AndreaSprega:Safari可能会使用您喜欢的不同插值级别,或者它正在改变图层的大小(我不知道这与插值中的任何值或当前插值的相关程度如何视图的上下文)。 – 2012-01-16 17:52:54