gpt4 book ai didi

ios - 加快/减少 Swift 中绘制位图的 CPU 负载

转载 作者:行者123 更新时间:2023-11-30 12:09:17 24 4
gpt4 key购买 nike

我必须在 Swift 中绘制瀑布图,并且我正在使用位图上下文,它更新得非常快,大约每秒 20 行,总共我有大约 400 行要显示 - 全宽。

我的CPU负载现在大约是100%,我想知道是否有更好的方法,画这个,来降低CPU负载。

func draw2(pixel:[rgba],width:Int,height:Int) -> UIImage
{ let colorSpace = CGColorSpaceCreateDeviceRGB()

var data = UnsafeMutableRawPointer(mutating: pixel)

let bitmapContext = CGContext(data: data,
width: width,
height: height,
bitsPerComponent: 8,
bytesPerRow: 4*width,
space: colorSpace,
bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue)


let image = bitmapContext?.makeImage()

return UIImage(cgImage: image!)

}

非常感谢你们的共同点

最佳答案

根据您告诉我的内容,您应该能够缓存图像并且每次只绘制增量线。您需要保留一个类参数来存储图像:

var cachedImage : UIImage?

每次调用绘图函数时,请执行以下操作:

  1. 使用 UIImage.draw(in:CGRect) 绘制缓存图像(如果存在,第一次运行时当然不会)(请参阅 https://developer.apple.com/documentation/uikit/uiimage/1624092-draw )。

  2. 绘制新路径。

  3. 将结果保存回cachedImage。

在绘制的每次迭代中,您显然希望将矩形移动一个像素,并初始化上下文以为新线腾出空间。

希望有帮助。

关于ios - 加快/减少 Swift 中绘制位图的 CPU 负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46267694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com