当前位置: 首页 > 面试题库 >

无法使用CIFilter从CIImage提取UIImage

宫坚
2023-03-14
问题内容

我有这个新的iOS 8 Swift项目,在它的一个视图控制器中,我必须设置图像。但是,我想在将图像CIFilter发送到视图之前更改图像的对比度:

这是我的代码:

view = UIImageView(frame:CGRectMake(0, 0, 200, 200))

var lecturePicture = UIImage(named: "placeholder")            
var beginImage = lecturePicture?.CIImage
var controlsFilter = CIFilter(name: "CIColorControls")

controlsFilter.setValue(beginImage, forKey: kCIInputImageKey)
controlsFilter.setValue(1.5, forKey: "inputContrast")

var displayImage = UIImage(CIImage: controlsFilter.outputImage) // breakpoint
(view as UIImageView!).image = displayImage

好吧,我只是获取图像,对其进行转换,然后将转换后的版本作为UIImage并将其设置回我的视图。

但是我只得到一个错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

有人可以告诉我我在做什么错吗?


问题答案:

差不多了

controlsFilter.setValue(beginImage, forKey: kCIInputImageKey)  // here you did it the right way
controlsFilter.setValue(1.5, forKey: "inputContrast")       // you should keep the same approach here

迅捷2

let lecturePicture = UIImage(data: NSData(contentsOfURL: NSURL(string:"http://i.stack.imgur.com/Xs4RX.jpg")!)!)!
let controlsFilter = CIFilter(name: "CIColorControls")
let beginImage = CIImage(image: lecturePicture)
controlsFilter.setValue(beginImage, forKey: kCIInputImageKey)
controlsFilter.setValue(1.5, forKey: kCIInputContrastKey)
let displayImage = UIImage(CGImage: CIContext(options: nil).createCGImage(controlsFilter.outputImage, fromRect:controlsFilter.outputImage.extent()))!
displayImage

Swift 3或更高版本

let lecturePicture = UIImage(data: try! Data(contentsOf: URL(string: "http://i.stack.imgur.com/Xs4RX.jpg")!))!
let controlsFilter = CIFilter(name: "CIColorControls")!
let beginImage = CIImage(image: lecturePicture)
controlsFilter.setValue(beginImage, forKey: kCIInputImageKey)
controlsFilter.setValue(1.5, forKey: kCIInputContrastKey)
let displayImage = UIImage(cgImage: CIContext(options: nil).createCGImage(controlsFilter.outputImage!, from: controlsFilter.outputImage!.extent)!)
displayImage


 类似资料:
  • 问题内容: 我正在尝试在JAVA中以给定的经度和纬度提取酒店名称的数据。我收到以下错误:[致命错误]:1:1:序言中不允许内容。这是我尝试从中提取信息的代码和URL。关于这个问题有什么建议吗? 问题答案: 出了什么问题 如果运行以下代码,您将看到返回的数据不是XML,而是JSON。 以XML形式获取数据 您可以使用来将数据请求为XML:

  • 我一直在与服务器使用改型的响应进行斗争。 Logcat正在打印JSONObject,但它在

  • 我想通过.properties文件配置bean字符串字段。但它并不替换值键,这意味着它回显“${value}”字符串。我的代码如下:

  • 问题内容: 我正在使用核心图像,并且将CIFilter棕褐色调应用于图像。我在viewDidLoad中运行了一次过滤器,然后立即调用另一个再次添加过滤器的函数。由于某些原因,当我尝试访问输出图像时,应用程序崩溃并说输出图像为nil。有人知道为什么会这样吗? 谢谢 问题答案: 您不能调用该UIImage并将其用作UIImageView的图像。UIImageView需要一个由位图(CGImage)支持

  • 当我运行第一段时,它非常好并生成输出。但是在第二种情况下,当我运行这个段2时,它生成 第1部分: 第2部分:

  • 我有登录请求,在请求中我获得了JSESSIONID和XSRF-TOKEN作为Cookie数据,如下所示 如果需要,如何从响应中提取JSESSIONID,以便在注册Cookie中传递该变量 在此处输入图像描述