2013-08-03 54 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