检查设备类型是否为GPUImage

时间:2013-08-03 20:20:14

标签: objective-c gpuimage gpuimagestillcamera

对于iPhone 4及更低版本,GPUImage需要小于2048像素的图像。 4S及以上可以处理更大的。如何查看我的应用当前正在运行的设备?我在UIDevice找不到任何可以找到的东西。有任何建议/解决方法吗?

3 个答案:

答案 0 :(得分:2)

这是我遇到过的最好的设备检测库之一:https://github.com/erica/uidevice-extension

编辑:虽然自述文件似乎表明她的“Cookbook”来源中有更多最新版本。也许this one更新。

答案 1 :(得分:2)

为此,您无需检查设备类型,只需读取设备支持的最大纹理大小即可。幸运的是,GPUImage中有一个内置方法可以为您完成此任务:

GLint maxTextureSize = [GPUImageContext maximumTextureSizeForThisDevice]; 

上面的内容将为您运行此设备的设备提供最大的纹理大小。这将决定GPUImage可以在该设备上使用的最大图像大小,并且应该可以防范未来的iOS设备。

此方法通过缓存此OpenGL ES查询的结果来工作:

 glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTextureSize);

如果你很好奇。

我还应该注意,您可以向框架提供大于最大纹理大小的图像,但在处理之前,它们会缩小到GPU支持的最大大小。在某些时候,我可能会完成我在处理中平铺这些图像的子部分的计划,以便可以原生支持更大的图像。不过,那还有一段距离。

答案 2 :(得分:1)

这是一个非常有用的类,我过去曾多次使用过,非常简单易用,

https://gist.github.com/Jaybles/1323251