[英]Can't save cropped image that switched format from CIImage and UIImage
[英]Can't extract UIImage from CIImage with CIFilter
我有這個新的iOS 8 Swift項目,在它的一個視圖控制器中,我必須設置圖像。 但是,我想在將圖像發送到視圖之前使用CIFilter
更改圖像的對比度:
這是我的代碼:
view = UIImageView(frame:CGRectMake(0, 0, 200, 200))
var lecturePicture = UIImage(named: "placeholder")
var beginImage = lecturePicture?.CIImage
var controlsFilter = CIFilter(name: "CIColorControls")
controlsFilter.setValue(beginImage, forKey: kCIInputImageKey)
controlsFilter.setValue(1.5, forKey: "inputContrast")
var displayImage = UIImage(CIImage: controlsFilter.outputImage) // breakpoint
(view as UIImageView!).image = displayImage
好吧,我只是獲取圖像,對其進行轉換,然后將轉換后的版本作為UIImage
並將其設置回我的視圖。
但是我只得到一個錯誤:
fatal error: unexpectedly found nil while unwrapping an Optional value
有人可以告訴我我在做什么錯嗎?
差不多了
controlsFilter.setValue(beginImage, forKey: kCIInputImageKey) // here you did it the right way
controlsFilter.setValue(1.5, forKey: "inputContrast") // you should keep the same approach here
迅捷2
let lecturePicture = UIImage(data: NSData(contentsOfURL: NSURL(string:"http://i.stack.imgur.com/Xs4RX.jpg")!)!)!
let controlsFilter = CIFilter(name: "CIColorControls")
let beginImage = CIImage(image: lecturePicture)
controlsFilter.setValue(beginImage, forKey: kCIInputImageKey)
controlsFilter.setValue(1.5, forKey: kCIInputContrastKey)
let displayImage = UIImage(CGImage: CIContext(options: nil).createCGImage(controlsFilter.outputImage, fromRect:controlsFilter.outputImage.extent()))!
displayImage
Swift 3或更高版本
let lecturePicture = UIImage(data: try! Data(contentsOf: URL(string: "http://i.stack.imgur.com/Xs4RX.jpg")!))!
let controlsFilter = CIFilter(name: "CIColorControls")!
let beginImage = CIImage(image: lecturePicture)
controlsFilter.setValue(beginImage, forKey: kCIInputImageKey)
controlsFilter.setValue(1.5, forKey: kCIInputContrastKey)
let displayImage = UIImage(cgImage: CIContext(options: nil).createCGImage(controlsFilter.outputImage!, from: controlsFilter.outputImage!.extent)!)
displayImage
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.