Tôi đang sử dụng hình ảnh lõi và tôi đang áp dụng tông màu nâu đỏ CIFilter cho hình ảnh của tôi. Tôi chạy một bộ lọc một lần trong viewDidLoad và sau đó ngay lập tức gọi một hàm khác để thêm bộ lọc một lần nữa. Vì lý do nào đó, khi tôi cố gắng truy cập vào hình ảnh đầu ra, ứng dụng bị treo và cho biết hình ảnh đầu ra là không. Có ai biết tại sao chuyện này xảy ra không?Hình ảnh đầu ra CIFilter nil
Cảm ơn
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var myimage: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let image = CIImage(image: myimage.image)
let filter = CIFilter(name: "CISepiaTone")
filter.setDefaults()
filter.setValue(image, forKey: kCIInputImageKey)
myimage.image = UIImage(CIImage: filter.outputImage)
self.reapplyFilter()
}
func reapplyFilter(){
let image = CIImage(image: myimage.image)
let filter = CIFilter(name: "CISepiaTone")
filter.setDefaults()
filter.setVa lue(image, forKey: kCIInputImageKey)
//ERROR HERE: fatal error: unexpectedly found nil while unwrapping an Optional value
myimage.image = UIImage(CIImage: filter.outputImage)
//ERROR
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Và xem sách của tôi về cách trích xuất hình ảnh _real_ từ CIImage: http://www.apeth.com /iOSBook/ch15.html#_cifilter_and_ciimage – matt
Và đối với mã Swift: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch02p070filters/ch15p419filters/ViewController.swift – matt
Tôi thấy rằng giải pháp được nêu bởi http://stackoverflow.com/users/1955870/fz không hoạt động (sử dụng 'CIContext'). Có rủi ro liên quan không? – SwiftArchitect