ios - CIFilter应用于图像不起作用 - 迅速
问题描述
我正在尝试将 CIFilter 应用于已在我的单视图应用程序中的 imageView 中显示的图像,但它似乎没有应用过滤器。请问有人可以建议吗?我的输入图像看起来完全一样。
迅速:
let filter = CIFilter.init(name: "CIHueAdjust")
let context = CIContext()
var extent: CGRect!
var scaleFactor: CGFloat!
@IBOutlet weak var img: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let ciImage = CIImage.init(image: img.image!)
filter?.setDefaults()
filter?.setValue(ciImage, forKeyPath: kCIInputImageKey)
let result = filter?.outputImage
print("result: \(result)")
var image = UIImage.init(cgImage: context.createCGImage(result!, from: result!.extent)!)
img.image = image
img.image = image
}
安慰:
result: Optional(<CIImage: 0x1c001a7a0 extent [0 0 2016 1512]>
affine [1 0 0 -1 0 1512] extent=[0 0 2016 1512] opaque
colormatch "sRGB IEC61966-2.1"_to_workingspace extent=[0 0 2016 1512] opaque
IOSurface 0x1c401a780(169) seed:1 YCC420f 601 alpha_one extent=[0 0 2016 1512] opaque
解决方案
它在评论中,但这里是关于如何CIHueAdjust
使用 Swift 4 设置对 的调用的完整(和更好的格式)答案:
let filter = CIFilter(name: "CIHueAdjust")
let context = CIContext()
var extent: CGRect!
var scaleFactor: CGFloat!
@IBOutlet weak var img: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let ciImage = CIImage(image: img.image!)
// Note: you may use kCIInputImageKey for inputImage
filter?.setValue(ciImage, forKey: "inputImage")
filter?.setValue(Float(1), forKey: "inputAngle")
let result = filter?.outputImage
var image = UIImage(cgImage: context.createCGImage(result!, from: result!.extent)!)
img.image = image
}
推荐阅读
- apache - 入口 gce (GKE) 前的 Apache 反向代理
- python - 上传文件然后显示内容,django
- html - 如何链接到css中的div并制作
有固定的宽度吗?
- r - 根据使用 R 满足的条件应用标签
- dart - 在 Flutter 中 TextField 的 onChanged 回调中设置后字符串被重置
- scala - 单击 url 下载 gz 文件并使用 scala 转换为 csv
- gradle - Gradle:在从 4 迁移到 Gradle 5 时替换 task.execute()
- spring-mvc - REST api 测试和访问存储库 bean 或服务 bean
- curl - 使用 Mailchimp API 批量订阅用户
- excel - 如何使用打开的 VBA 解锁工作簿中的空白单元格