无论我尝试直接从文件中加载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
我在做什么错?是网址吗?
答案 0 :(得分:3)
如果您的图片位于主捆绑包中,则需要提供文件url,然后您将获得如下代码所示的url
guard let url = Bundle.main.url(forResource:"image_0001", withExtension:"jpg") else {
return
}
let testCIImage = CIImage(contentsOf: url)
答案 1 :(得分:0)
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
URL(string:
需要一个字符串,该字符串表示以示例开头的完整 URL
URL(string: "https://example.com/path/to/image_0001.jpg")
或
URL(string: "file:///Users/myuser/path/to/image_0001.jpg")