iOS:如何很好地扩展图像?

时间:2016-09-07 15:52:17

标签: ios uiimageview cifilter

我无法以一种很好的方式扩展图像。我在UIImageView中显示图像。但是当图像从服务器下载时,我想显示图像的模糊版本。服务器快速给我一个小版本的图像,如下所示:

small preview image

放大,看起来像这样:

large preview image

我希望能够像这样绘制它(这是我在缩放图像时绘制它的方式):

chrome blurred image

但是当我将图像放入UIImageView并将imageview.layer.magnificationFilter设置为kCAFilterLinear或kCAFilterTrilinear时,我得到了这个:

uiimageview scaled image

......这很难看 - 注意光明和黑暗的硬带。

我已尝试将CIFilter与CILanczosScaleTransform一起使用,看起来很有前途,但我的边框效果很难看:

lanczos scaled image

嗯 - 有什么建议吗?有人做得很好吗?我可以永远尝试过滤器,以为我看看是否有人破解了这个...

编辑:我试过了bbarnhart的建议。我得到了这个 - 更好,但模糊半径太大或者是什么:

visual effect blur

编辑2:@bbarnhart,我现在可以得到这个,更接近!

enter image description here

1 个答案:

答案 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