2010-03-18 2 views
1

У меня есть код, работающий в приложении iPhone, которое я разрабатываю. В принципе, код должен загружать изображения и звонки:Изображения iPhone на симуляторе и фактическом устройстве - разные значения битPerPixel?

size_t bitsPerPixel    = CGImageGetBitsPerPixel(imageRef); 

я заметил, что на тренажере iPhone этот вызов возвращает 24 и само устройство возвращает 32.

Является ли это поведение конструкции? Это что-то, что я могу контролировать?

ответ

0

Я думаю, что это сводится к формату изображения.

При использовании PNG в приложении iPhone часть процесса сборки при создании устройства помещает PNG-изображения через утилиту pngcrush, которая оптимизирует изображения для использования с графическим процессором iPhone. Это связано с тем, что графический процессор iPhone не ориентирован на альфа, поэтому он полагается на предварительно умноженные значения альфа.

Это может быть разница, которую вы видите. И причина, по которой вы не видите его в симуляторе, заключается в том, что симулятор использует графический процессор Mac, и поэтому может изначально обрабатывать альфа в PNG, что означает, что PNG не «раздавливаются» во время процесса сборки.

Я думаю ...

+0

(я знаю, что я был не один, кто задал этот вопрос, но ...) Тогда как другие приложения, которые находятся на App Store использовать изображения, которые должны использовать прозрачность? Являются ли они в формате .gif или что-то еще? – ipodfreak0313

+0

@ ipodfreak0313 - iPhone может обрабатывать прозрачные PNG, не нужно использовать GIF. Это просто другой способ обработки прозрачности. Превышение альфа-значений во время фазы сборки - это оптимизация, которая позволяет iPhone сохранить это во время выполнения. Графический процессор iPhone не ориентирован на альфа-канал PNG - это не означает, что он не поддерживает прозрачность - только он медленнее, когда выполняется «на лету». Неоптимизированные PNG могут использоваться с прозрачностью, но они медленнее, чем оптимизированные PNG. – Jasarien

+0

@ Янсариен, так ... как я могу оптимизировать PNG? – ipodfreak0313