【发布时间】:2020-05-15 08:43:56
【问题描述】:
我想用 swift 的原始像素数据生成网格图片或位图或任何类似的东西。由于像素位置、图像大小等在用户打开应用程序或按下刷新按钮之前无法确定,因此我需要一种快速的方法来生成 2732x2048 或更多的单个像素并将它们显示在屏幕上。
首先我确实使用了UIGraphicsBeginImageContextWithOptions,并使用 1x1 CGRect 绘制了每个像素,但这显然不能很好地缩放。
后来我使用了这种方法:Pixel Array to UIImage in Swift 但是对于更大的屏幕,这仍然有点慢。
可以用 MetalKit 完成类似的事情吗?我会假设较低的 api 确实以这种方式更快地呈现类似的东西?
或者在 MetalKit 和 CoreGraphics 之间有什么更好的方法来处理这样的事情吗?
关于我的数据结构的一些信息:
有一个struct,每个像素的像素颜色数据red, green, blue, alpha存储为Array和两个图像大小变量:imageHeight和imageWidth。
【问题讨论】:
-
你能改变那个数据格式吗?
-
可以,只要我可以自己设置各个像素。或者更具体地说,每个像素的颜色值。颜色表示也是可变的
标签: ios swift core-graphics metal