我想快速生成网格图片或位图或任何与原始像素数据类似的东西。由于在用户打开应用程序或按下刷新按钮之前无法确定像素位置,图像大小等,因此我需要一种快速的方法来生成2732x2048或更多的单个像素并将其显示在屏幕上。
首先,我确实使用了UIGraphicsBeginImageContextWithOptions
并用1x1 CGRect
绘制了每个像素,但这显然缩放不好。
[之后,我使用了这种方法:Pixel Array to UIImage in Swift但这对于较大的屏幕仍然有点慢。
MetalKit可以完成类似的事情吗?我认为较低的api确实可以更快地渲染类似内容?
或者在MetalKit和CoreGraphics之间是否有更好的方法来处理类似的东西?
有关我的数据结构的一些信息:
有一个struct
,每个像素的像素颜色数据red, green, blue, alpha
被存储为Array
和两个图像尺寸变量:imageHeight
和imageWidth
。
最有效的方法是使用Metal Compute Function。
Apple有很好的文档来说明GPU编程。