【发布时间】:2017-09-17 18:49:56
【问题描述】:
我必须在 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!)
}
非常感谢大家
【问题讨论】:
-
嗨@Manuel- 每次调用它时你都重绘整个图像吗?假设您只是在每次可以缓存现有图像并在顶部绘制新位时添加新行(就像您在绘图应用程序中缓存绘制的路径一样)。
-
您好 Sparky,我更改了数据指针,使其指向新行。所以我只在数组中添加一行,但是每次调用函数时我都会绘制整个图像。是否有可能只画一条新线,并将现有图像降低一个像素?
标签: ios swift performance bitmap