【问题标题】:iOS image resize: is there a better interpolation than the kCGInterpolationHigh?iOS 图像调整大小:是否有比 kCGInterpolationHigh 更好的插值?
【发布时间】:2012-01-14 12:57:31
【问题描述】:

我使用此方法将图像大小调整为原始尺寸的两倍:

- (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 在缩放页面时没有这种效果。所以我想知道是否有更好的方法来升级图像,还使用第三方库/类别或类似的东西?谢谢!

【问题讨论】:

  • 你确定你真的在使用 kCGInterpolationHigh 吗?如果你摆脱那条线怎么办......它看起来一样吗?只是双重检查。此外,如果您分享这个与 Safari 的结果仅供我们参考,将会很有帮助。

标签: ios uikit core-graphics interpolation image-resizing


【解决方案1】:

任何时候你插值,你都会得到某种工件。

Safari 不会在页面上出现伪像,因为该页面本质上是一个矢量文档,带有轮廓字体和可调整大小的对象——但是如果你查看页面上的光栅图像,你会发现如果你把它炸毁足够大,图像确实会显示伪影。 Safari 也不能幸免;什么都没有。

【讨论】:

  • 我知道,而且我不是在谈论矢量部分。给定相同的缩放比例,safari 上的图像只是更好地插值:当然有伪影,但更好地“模糊”。在我的应用程序中,相同大小的相同图像只是像素化程度更高。但是,嘿,我想最后还是可以的。
  • @AndreaSprega:Safari 可能正在使用您喜欢的不同插值级别,或者它正在更改图层的大小(我不知道这与任何插值有什么关系值或视图上下文中的当前值)。
猜你喜欢
  • 1970-01-01
  • 2013-12-10
  • 2023-03-27
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 2017-05-28
  • 2011-09-20
  • 2011-07-15
相关资源
最近更新 更多