![](/img/trans.png)
[英]Why I can't set the default zoom on my UIScrollView in my ios swift app?
[英]Why can't I invert my image back to original with CIFilter in my Swift iOS app
我正在開發一個簡單的應用程序。 它有一個帶有預加載圖像和按鈕的圖像視圖。 按下按鈕時,應反轉圖像視圖中的圖像。
它第一次工作,但我希望當我再次按下按鈕時,它會將圖像反轉回原始形狀。 然而,在第二次按下按鈕時它會崩潰。
以下是ViewController.swift
的相關代碼:
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var invertButton: UIButton!
@IBAction func invertButtonPressed(sender: UIButton) {
let beginImage = CIImage(image: imageView.image!)
let filter = CIFilter(name: "CIColorInvert")!
filter.setValue(beginImage, forKey: kCIInputImageKey)
imageView.image = UIImage(CIImage: (filter.outputImage)!)
}
基本上, beginImage
第二次變為nil
,我不知道為什么。 我已經嘗試通過將那些密集線分成盡可能多的let
賦值進行調試,但是CIImage
構造函數出現了神秘的事情。 有任何想法嗎?
問題是這一行:
imageView.image = UIImage(CIImage: (filter.outputImage)!)
你不能這樣做。 CIImage並沒有神奇地變成UIImage。 圖像視圖需要基於位圖的圖像,而不是基於CIImage的圖像。 您必須渲染 CIImage以將其轉換為UIImage,方法是獲取CIContext並告訴它創建CGImage或將CIImage繪制到圖形上下文中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.