UIGraphicsImageRenderer 不在循环中返回图像

问题描述

我想看看为什么 UIGraphicsImageRender 没有返回图像。我们将循环 calayers 列表以将 calayer 转换为 uiimage,然后将 uiimage 存储在列表中。它发生在索引 91 处。我正在使用这个从 calayers 到图像的过程,然后将图像转换为视频文件。我尝试了几乎所有方法 - autoreleasepool,使用 DispatchQueue,CG_CONTEXT_SHOW_BACKTRACE 没有显示任何内容。我正在为这个拉头发。

 DispatchQueue(label: "imageQueue",qos: .utility,autoreleaseFrequency: .workItem).async {
                
                var index = 0
                while index < drawAnimationObjectsByIndex.count  {
                    if let object = drawAnimationObjectsByIndex[index] {
                        let image = self.generateImage(layer: object.parent)
                        if image.cgImage != nil {
                            //os_log("the image is generated at %d.",log: self.tag,type: .debug,index)
                            images.append(image)
                            drawAnimationObjectsByIndex[index] = nil
                            index += 1
                        }
                        else {
                            //os_log("the image is not generated at %d.",index)
                        }
                    }
                }
                completion(images)
            }

private func generateImage(layer : CALayer) -> UIImage {
        let renderer = UIGraphicsImageRenderer(size: settings.size)
        let img = renderer.image {
            ctx in
            
            if ctx.cgContext != nil {
                layer.render(in: ctx.cgContext)
            }
            else {
                fatalError()
            }
        }
        return img
    }

它随机返回那些错误信息(不一致)-

021-05-18 09:53:56.782550-0500 apate[12603:7001594] [Unknown process name] CGBitmapContextInfoCreate: unable to allocate 74649600 bytes for bitmap data
2021-05-18 09:53:56.782663-0500 apate[12603:7001594] [Unknown process name] CGDisplayListDrawInContext: invalid context 0x0. If you want to see the backtrace,please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
2021-05-18 09:53:56.782757-0500 apate[12603:7001594] [Unknown process name] CGBitmapContextCreateImage: invalid context 0x0. If you want to see the backtrace,please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

2021-05-18 10:19:25.856682-0500 apate[12628:7070390] [DrawingRender] the image is generated at 89.
2021-05-18 10:19:25.895884-0500 apate[12628:7070390] [DrawingRender] the image is generated at 90.
2021-05-18 10:19:25.929803-0500 apate[12628:7070390] [DrawingRender] the image is not generated at 91.
2021-05-18 10:19:25.958797-0500 apate[12628:7070390] [DrawingRender] the image is not generated at 91.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...