微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CGImageCreate:无效的图像alphaInfo:kCGImageAlphaNone应该是kCGImageAlphaNoneSkipLast

如何解决CGImageCreate:无效的图像alphaInfo:kCGImageAlphaNone应该是kCGImageAlphaNoneSkipLast

我正在尝试将UIVIew捕获为图像,然后可以对其进行操作。我有可在Xcode 11.7 / simulator(运行iOS 13.7)中运行的代码,但抛出此错误

CGImageCreate:无效的图像alphaInfo:kCGImageAlphaNone。应该是kCGImageAlphaNoneskipLast

在实际设备上运行会导致崩溃。

有什么主意,我该如何在不使用Alpha的情况下创建此图像,或者在事后将其删除

extension UIView  {
    // render the view within the view's bounds,then capture it as image
  func asImage() -> UIImage {
    let renderer = UIGraphicsImageRenderer(bounds: bounds)
    return renderer.image(actions: { rendererContext in
        layer.render(in: rendererContext.cgContext)
    })
  }
}

通过以下代码调用它:

@IBAction func reactionListButtonTapped(_ sender: UIButton) {
  guard let reactionVC = storyboard?.instantiateViewController(withIdentifier: "ReactionViewController")
    as? ReactionViewController else {
      
    assertionFailure("No view controller ID ReactionViewController in storyboard")
    return
  }

  // take a snapshot of current view and set it as backingImage
  reactionVC.backingImage = self.view.asImage()

  self.present(reactionVC,animated: false,completion: nil)
}

感谢您的帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。