我在互联网上找到一些信息,核心图像处理图像在CPU上,如果它的任何大小超过2048 (宽或高或两者都)。这看起来是真的,因为即使在3200x2000图像上应用CIFilter也是非常慢的。如果我在2000x2000图像上做同样的事情,它会快得多。是否可以让Core-Image始终在GPU上处理所有图像?或者我发现的信息是不正确的?
发布于 2012-09-28 22:26:40
GPU上的处理并不总是更快,因为您的图像数据首先必须加载到GPU内存中,进行处理,然后再传回。
你可以使用kCIContextUseSoftwareRenderer来强制软件渲染(在CPU上),但是我担心在GPU上强制渲染没有常量。此外,软件渲染在模拟器中不起作用。
发布于 2014-05-05 09:04:07
最大大小取决于您正在使用的设备。对于iPhone 3GS/4和iPad 1,它是2048*2048。对于更高版本的iPhone/iPad,是4096*4096。在OSX上,这取决于您的显卡和/或操作系统版本(2、4、8或16K²)。
绕过限制的一种可能方法是将图像平铺为低于限制的碎片,然后分别处理每个平铺。然后你就得把这些碎片放回原处。
https://stackoverflow.com/questions/12641853
复制相似问题