Вопрос по iphone, objective-c – Конвертировать .png в PVRTC * на * iPhone

6

Существует ли стандартный механизм или известная библиотека, которая преобразует изображения .png в сжатые текстуры PVRTC на самом iPhone (не во время разработки с использованием стандартных инструментов для OS X).

У меня есть несколько текстур .png в моем приложении, но обмен является проблемой. Я хотел бы создать PVRTC-варианты файлов .png на устройстве, если доступной памяти будет мало при запуске приложения (или, возможно, при первой загрузке приложения).

Я принял ответ Барни на данный момент как наиболее правильный на данный момент. Если у кого-то есть конкретные сведения о том, как на самом деле преобразовать форматы изображений, я переключу ответ. bradhouse

Ваш Ответ

3   ответа
2

как создавать изображения PVRTC вручную, и, насколько мне известно, поддержка этого встроенного в iPhone не поддерживается (и для чтения файлов PVRTC не потребуется).

Для большинства приложений нет смысла включать или создавать обе версии файлов. При оптимальных условиях версии PVRTC должны быть практически неотличимы от версий PNG и действительно просто «предварительно обработаны». версии файлов, оптимизированные для прямой потоковой передачи в видеопамять.

Как правило, лучше всего просмотреть все ваши изображения и принять решение о том, как наилучшим образом упаковать изображение, чтобы сбалансировать сохранение и качество памяти для всех пользователей, а не только в определенных ограниченных ситуациях с памятью.

Несколько вещей для рассмотрения (извинения, если это избыточные знания):

PVRTC files can have problems with complex alpha blended images as the pre-processing can cause unsightly artifacts along the blended edges. Opaque PNG files should have their alpha channel removed in the original image (saving memory and blending overhead). For images with a limited range of colors, reduce the image from PNG32 to PNG16 or PNG8 to save memory on disk. If this is for OpenGL based programs, consider using an enhanced version of Texture2D (such as from Cocos2D) which supports alternate pixel formats such as 565 and 4444. This can greatly reduce the overhead in the graphics card with minimal impact on image quality, by carefully choosing a pixel format which corresponds to the balance of colors in the original image. Additionally for OpenGL based programs, avoid individual images (320x480) for backgrounds as this will result in a 512x512 texture in memory for each one. Break the image into smaller pieces or make the image 512x512 and fill the extra space with other images so that only one texture needs to load. As with everything, focus on the largest images first to get the biggest bang for the buck.

Стоит также отметить, что, поскольку ваше приложение будет работать единственно (кроме системных приложений), единственными реальными накладными расходами памяти будет ограниченное количество «диска». пространство. Создание второй копии всех файлов изображений будет работать против вас, а не помогать.

гулянка

Error: User Rate Limit Exceeded bradhouse
0
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

если предположу, что это поможет вам. Как только вы ссылаетесь на изображения один раз, то есть загружаете их в UIImage, iPhone начнет кэшировать ваши png-файлы, нравится вам это или нет. На мой взгляд, их сжатие не поможет вам достичь того, что вы ищете здесь.

Error: User Rate Limit Exceeded bradhouse

Похожие вопросы