我无法以一种很好的方式扩展图像。我在UIImageView中显示图像。但是当图像从服务器下载时,我想显示图像的模糊版本。服务器快速给我一个小版本的图像,如下所示:
放大,看起来像这样:
我希望能够像这样绘制它(这是我在缩放图像时绘制它的方式):
但是当我将图像放入UIImageView并将imageview.layer.magnificationFilter设置为kCAFilterLinear或kCAFilterTrilinear时,我得到了这个:
......这很难看 - 注意光明和黑暗的硬带。
我已尝试将CIFilter与CILanczosScaleTransform一起使用,看起来很有前途,但我的边框效果很难看:
嗯 - 有什么建议吗?有人做得很好吗?我可以永远尝试过滤器,以为我看看是否有人破解了这个...
编辑:我试过了bbarnhart的建议。我得到了这个 - 更好,但模糊半径太大或者是什么:编辑2:@bbarnhart,我现在可以得到这个,更接近!
答案 0 :(得分:2)
在UIImageView上使用模糊效果可能会为您提供更接近您想要的效果。
let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .Light))
blurView.frame = yourImageView.bounds
yourImageView.addSubview(blurView)
另请查看bluuur
更新以包含游乐场:
import UIKit
import XCPlayground
let image = UIImage(named: "pixels")
let view = UIView(frame: CGRect(x: 0, y: 0, width: 346, height: 431))
let imageView = UIImageView(image: image)
let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .Light))
blurView.frame = imageView.bounds
imageView.addSubview(blurView)
view.addSubview(imageView)
XCPlaygroundPage.currentPage.liveView = view