GPUImage требует для iPhone 4 и ниже изображений размером менее 2048 пикселей. 4S и выше могут работать намного больше. Как проверить, какое устройство работает в настоящее время? Я ничего не нашел в , который делает то, что я ищу. Любые предложения/обходные пути?Проверить тип устройства для GPUImage
ответ
Для этого вам не нужно, чтобы проверить тип устройства, вы просто нужно прочитать максимальный размер текстуры, поддерживаемый устройством. К счастью, есть встроенный метод в GPUImage, что делает это для вас:
GLint maxTextureSize = [GPUImageContext maximumTextureSizeForThisDevice];
выше даст вам максимальный размер текстуры для устройства, которое вы бежите это на. Это определит самый большой размер изображения, с которым GPUImage может работать на этом устройстве, и должен быть надежным против любых устройств iOS.
Этот метод работает кэширование результатов этого запроса OpenGL ES:
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTextureSize);
, если вам интересно.
Следует также отметить, что вы можете обеспечить изображения размером больше максимального размера текстуры для фреймворка, но до обработки они уменьшаются до максимального размера, поддерживаемого графическим процессором. В какой-то момент я могу завершить свой план по разбиению подсекций этих изображений при обработке, чтобы более крупные изображения могли поддерживаться изначально. Однако это путь.
Это является одним из лучших библиотек устройств обнаружения я столкнулся: https://github.com/erica/uidevice-extension
EDIT: Хотя риде, кажется, предполагают, что более до современных версий в ее источниках «Cookbook». Возможно, this one является более актуальным.
Вот полезный класс, который я несколько раз использовал в прошлом, что очень просто и легко осуществить,
Итак, вы говорите, что мне не нужно изменять его вручную, каркас автоматически изменит его размер, если он слишком большой? – Rob
@Rob - для фотографий и фотографий, сделанных камерой, да. Я не верю, что исходный ввод данных делает это прямо сейчас. –
Я использую UIImagePickerController прямо сейчас. Будет ли это проблемой? – Rob