我必须在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!)
}非常感谢大家的共同之处
发布于 2017-09-18 03:35:46
根据您告诉我的内容,您应该能够缓存图像,并且每次只绘制增量线。您需要保留一个class参数来存储您的图像:
var cachedImage : UIImage?每次调用绘图函数时,请执行以下操作:
在每次绘制迭代时,您显然希望将矩形移动一个像素,并初始化您的上下文,以便为新行腾出空间。
希望这能有所帮助。
https://stackoverflow.com/questions/46267694
复制相似问题