2013-08-03 64 views
0

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

回答

2

对于这一点,你不需要检查的设备类型,你只需读取设备支持的最大纹理大小。幸运的是,这是否对你内GPUImage一个内置的方法:

GLint maxTextureSize = [GPUImageContext maximumTextureSizeForThisDevice]; 

上述会给你你在运行该设备的最大纹理大小。这将决定GPUImage可以在该设备上使用的最大图像大小,并且应该是未来iOS设备的未来发展方向。如果你好奇

glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTextureSize); 

此方法通过缓存此OpenGL ES的查询结果。

我还应该注意,你可以提供大于最大纹理尺寸的图像给框架,但它们会在处理之前缩小到GPU支持的最大尺寸。在某些情况下,我可能会完成计划,在处理中对这些图像的子部分进行平铺,以便可以在本地支持更大的图像。不过,这是一种解决方法。

+0

所以你说我不需要手动调整它的大小,如果它太大,框架会自动调整它的大小? – Rob

+0

@Rob - 对于由相机拍摄的静止图像和照片,是的。我不相信现在的原始数据输入。 –

+0

我现在正在使用UIImagePickerController。这会是一个问题吗? – Rob

2

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

编辑:虽然自述似乎表明,越涨最新版本是在她的“菜谱”的来源。或许this one更新。

+1

具体而言,您需要'UIDevice-Hardware.h'文件和'platformType'方法。 – Wain

+0

你也需要.m文件,但是。 – ipmcc