从文件创建CIImage时出现问题

时间:2018-11-21 11:47:33

标签: ios swift ciimage

无论我尝试直接从文件中加载CIImage还是什么都没有。但是,我可以将文件加载到UIImage中并将其转换为CIImage

所以,这可行:

        let testUIImage = UIImage(named: "image_0001.jpg")!
        let testCIImage = CIImage(image: testUIImage)  // OK

但这不是:

        let testCIImage = CIImage(contentsOf: URL(string: "image_0001.jpg")!)  // returns nil

我在做什么错?是网址吗?

2 个答案:

答案 0 :(得分:3)

如果您的图片位于主捆绑包中,则需要提供文件url,然后您将获得如下代码所示的url

guard let url = Bundle.main.url(forResource:"image_0001", withExtension:"jpg") else {
  return 
}
let testCIImage = CIImage(contentsOf: url)

答案 1 :(得分:0)

  1. UIImage(named: "name.ext")是一个便捷的初始化程序。这是

    的缩写
    guard let url = Bundle.main.url(forResource:"name", withExtension:"ext"),
          let data = try? Data(contentsOf: url),
          let image = UIImage(data: data) else { return nil }
    return image
    
  2. URL(string:需要一个字符串,该字符串表示以示例开头的完整 URL

    URL(string: "https://example.com/path/to/image_0001.jpg")
    

    URL(string: "file:///Users/myuser/path/to/image_0001.jpg")