ios - imageView图像返回null

标签 ios swift uiimageview

我正在使用 swift 2,在按照教程使用选择器选择图像,然后在按下按钮时应用过滤器时遇到了一个奇怪的问题。

我的流程是这样的:

  1. 单击按钮使用imagePickerControl选择图像 在 ImageView 的图像中显示它
  2. 点击按钮处理过滤器 在该图像上

这是图像选择器的代码:

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
        if let pickedImage = image as? UIImage {
            imageView.contentMode = .ScaleAspectFit
            imageView.image = pickedImage
        }
        dismissViewControllerAnimated(true, completion: nil)
    }

这部分进行处理/过滤:

func setProcessFilter() {
        var originalImage = CIImage(image: imageView.image!)
        if originalImage !== nil {
            var filter = CIFilter(name: "CIPhotoEffectProcess")
            filter?.setDefaults()
            filter?.setValue(originalImage, forKey: kCIInputImageKey)
            var imageOutput = filter!.outputImage
            var newImage = UIImage(CIImage: imageOutput!)
            imageView.image = newImage
        } else {
            print("problem!")
        }
    }

有趣的是,第一次单击按钮时,此方法有效,但第二次原始图像变为空。我不确定为什么会发生这种情况?

Here is my full code .

最佳答案

对于在学习教程时遇到此问题的任何人,只需创建一个 var:

var filterImage : CIImage!

一旦图像选择器选择了图像,将其推送到那里:

    func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
    if let pickedImage = image as? UIImage {
        imageView.contentMode = .ScaleAspectFit
        filterImage = CIImage(image: pickedImage)
        imageView.image = pickedImage
    }
    dismissViewControllerAnimated(true, completion: nil)
}

关于ios - imageView图像返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32319917/

相关文章:

iphone - 从 iPhone 获取一般信息

iphone - 检查 iPhone App 进入前台时在后台停留了多长时间

ios - 后台 UIDevice CFDictionaryGetValue 错误

iOS 应用内购买和订阅 : Testing

swift - 使用可重复使用的单元来保存数据

swift - TSMessage - 调用中的额外参数 'image'

ios - 如何以人类可读的形式显示 OptionSet 值?

ios - 识别哪个View调用Tap函数

ios - UIImageViews/向 View 添加多个贴纸。

iphone - 从 ViewController 设置 UIImageView 图像