对于我正在处理的应用,我想使用ReplayKit捕获屏幕视频。这会带来一些内存使用限制,当在具有高分辨率的iOS设备(如iPhone X)上运行时,似乎会超出这些限制。在此设备上,简单的图像处理已经崩溃了应用程序。更具体地说:使用CIImage
和CIContext
来提取图像的平均颜色。
有没有办法以更有效的方式提取CMSampleBuffer
或CIImage
的颜色?使用低分辨率或低质量图像是没有问题的。
此部分使扩展程序崩溃:
result = [UInt8](repeating: 0, count: 4)
context.render(
outputImage,
toBitmap: &result,
rowBytes: 4,
bounds: CGRect(x: 0, y: 0, width: 1, height: 1),
format: kCIFormatRGBA8,
colorSpace: CGColorSpaceCreateDeviceRGB()
)
outputImage
是一个屏幕截图框架CIImage
。