You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将UIImage转为CIImage再转回后显示空白问题求助

UIImage转CIImage再转回后无法显示的解决方案

问题出在:直接用UIImage(ciImage:)创建的UIImage仅作为CIImage的引用包装,不包含实际位图数据,而SwiftUI的Image视图需要可直接渲染的像素数据才能正常显示图片。

解决方式是通过CIContext将CIImage渲染为CGImage,再用CGImage生成包含完整位图数据的UIImage,修改onAppear部分代码即可:

.onAppear(){
    guard let uiimage = UIImage(named: "Lenna") else {return};
    guard let ciimage = CIImage(image: uiimage) else {return};
    
    stateString = "past guard"
    // 渲染CIImage为CGImage,得到实际位图数据
    guard let cgImage = CIContext().createCGImage(ciimage, from: ciimage.extent) else { return }
    stateImage = UIImage(cgImage: cgImage);
}

核心说明:

  • CIContext().createCGImage(_:from:)会把CIImage的内容转换成可直接使用的位图数据(CGImage)
  • 基于CGImage初始化的UIImage携带了完整像素信息,能被SwiftUI的Image视图正确识别渲染

内容的提问来源于stack exchange,提问作者P.Bjur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 08:05:25