对于 iPhone 4 及更低版本,GPUImage 需要小于 2048 像素的图像。4S及以上可以处理更大。如何查看我的应用当前在哪个设备上运行?我还没有找到任何UIDevice
我正在寻找的东西。有什么建议/解决方法吗?
问问题
526 次
3 回答
2
这是我遇到的最好的设备检测库之一:https ://github.com/erica/uidevice-extension
编辑:虽然自述文件似乎表明更新的版本在她的“食谱”来源中。也许这个更流行。
于 2013-08-03T20:21:54.580 回答
2
为此,您无需检查设备类型,只需读取设备支持的最大纹理大小即可。幸运的是,GPUImage 中有一个内置方法可以为您执行此操作:
GLint maxTextureSize = [GPUImageContext maximumTextureSizeForThisDevice];
以上将为您提供运行此设备的最大纹理大小。这将决定 GPUImage 可以在该设备上使用的最大图像大小,并且应该能够抵御未来的任何 iOS 设备。
此方法通过缓存此 OpenGL ES 查询的结果来工作:
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTextureSize);
如果你很好奇。
我还应该注意,您可以向框架提供大于最大纹理尺寸的图像,但它们会在处理之前缩小到 GPU 支持的最大尺寸。在某个时候,我可能会完成我在处理过程中平铺这些图像的子部分的计划,以便本机支持更大的图像。不过,这还有一段路要走。
于 2013-08-04T21:48:19.190 回答
1
这是一个我过去多次使用过的有用的类,它非常简单且易于实现,
于 2013-08-03T23:58:40.803 回答