【问题标题】:Generate Image from Pixel Array (fast)从像素阵列生成图像(快速)
【发布时间】: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和两个图像大小变量:imageHeightimageWidth

【问题讨论】:

  • 你能改变那个数据格式吗?
  • 可以,只要我可以自己设置各个像素。或者更具体地说,每个像素的颜色值。颜色表示也是可变的

标签: ios swift core-graphics metal


【解决方案1】:

最有效的方法是使用Metal Compute Function

Apple 有一个很好的文档来说明 GPU 编程。

【讨论】:

    猜你喜欢
    • 2012-05-09
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    相关资源
    最近更新 更多