And*_*wBr 4 uiimageview uiimage ios swift
我想像素化和取消像素化UIImage或UIImageview使用Swift,但我不知道我该怎么做.
也许使用效果,图层或类似的东西?
Luc*_*tti 10
这在iOS上是一项非常简单的任务.
您可以使用CIPixellate核心图像过滤器.
func pixellated(image: UIImage) -> UIImage? {
guard let
ciImage = CIImage(image: image),
filter = CIFilter(name: "CIPixellate") else { return nil }
filter.setValue(ciImage, forKey: "inputImage")
guard let output = filter.outputImage else { return nil }
return UIImage(CIImage: output)
}
Run Code Online (Sandbox Code Playgroud)
结果
默认inputScale值为8.但是,您可以手动设置参数来增加或减少效果.
filter.setValue(8, forKey: "inputScale")
// ^
// change this
Run Code Online (Sandbox Code Playgroud)
您还可以定义以下扩展名
extension UIImage {
func pixellated(scale: Int = 8) -> UIImage? {
guard let
ciImage = UIKit.CIImage(image: self),
filter = CIFilter(name: "CIPixellate") else { return nil }
filter.setValue(ciImage, forKey: "inputImage")
filter.setValue(scale, forKey: "inputScale")
guard let output = filter.outputImage else { return nil }
return UIImage(CIImage: output)
}
}
Run Code Online (Sandbox Code Playgroud)
机制完全相同,您只需要使用不同的过滤器.您可以在此处找到完整的过滤器列表(但请查看每个过滤器可用/需要哪些参数).我认为CIGaussianBlur可以完成这项工作.
当然,不要指望能够输入低分辨率的超像素图像并获得高清晰度图像.此技术仅适用于X-Files:D
蘑菇图像取自这里.
| 归档时间: |
|
| 查看次数: |
539 次 |
| 最近记录: |