我目前正在制作一个照片编辑应用程序。
当用户选择一张照片时,它会使用此代码自动转换为白色:
func blackWhiteImage(image: UIImage) -> Data {
print("Starting black & white")
let orgImg = CIImage(image: image)
let bnwImg = orgImg?.applyingFilter("CIColorControls", withInputParameters: [kCIInputSaturationKey:0.0])
let outputImage = UIImage(ciImage: bnwImg!)
print("Black & white complete")
return UIImagePNGRepresentation(outputImage)!
}
我遇到的问题与此代码是,我不断得到这个错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
我的代码在配置上略有不同,但当它到达UIImagePNG/JPEGRepresentation(xx)
部分时仍然会中断。
是否有任何方法可以从CIImage获取PNG或JPEG数据,以便在图像视图中使用/通常仅在UIImage中使用?
任何其他方法都没有足够详细地说明应该使用什么代码。
1条答案
按热度按时间deikduxw1#
只需开始一个新的图形上下文并在那里绘制灰度图像。iOS 10或更高版本可以使用UIGraphicsImageRenderer,对于旧iOS版本语法,请查看编辑历史记录:
也可以扩展UIImage以返回灰度图像:
x一个一个一个一个x一个一个二个x