Что вызывает в инструментах «Цветные скопированные изображения» и «Цвет попадает в зеленый цвет и отсутствует красный»? - PullRequest
23 голосов
/ 10 июня 2011

В руководстве пользователя Instruments есть следующее:

  • Цветные скопированные изображения. Помещение голубого наложения на изображения, скопированные с помощью Core Animation.

Но это не объясняет , почему изображение было скопировано. Кажется, не существует очевидного паттерна от одного скопированного изображения к другому, хотя он является регулярным и воспроизводимым.

В настоящее время в документах даже нет упоминания Цвет: Зеленый, Мисс и Красный * , но я думаю, что это может иметь какое-то отношение к shouldRasterize свойству CALayer.

Есть идеи?

Ответы [ 2 ]

9 голосов
/ 26 апреля 2015

Для " Цветных скопированных изображений ", об этом красиво говорилось в Сессии 419 WWDC 2014:

"Если изображение в цветном формате, с которым GPU не может работать напрямую, оно будет преобразовано в ЦП."

Пример: Представьте себе, что вы получаете изображения из онлайн-источника, где вы не контролируете формат. JPEG поддерживает 24-битные цветные изображения (8 бит на цвет). Формат TIFF может хранить цвета в 48-битных цветных изображениях (16 бит на цвет). В зависимости от того, что хочет iOS, эти различия, возможно, придется преобразовать.

Решением было бы преобразовать их в фоновом режиме в правильный цветовой формат, чтобы избежать проблем с производительностью при выполнении этих преобразований в основном потоке.

Для " Color Hits Green и Misses Red " OP - верный код, он проверяет, правильно ли вы используете свойство shouldRasterize. Зеленый означает хорошо, вы повторно использовали кеш, который вы создали из свойства shouldRasterize. Красный означает плохо, вам нужно было записать в кеш (вызывает закадровый проход), а затем нарисовать.

3 голосов
/ 19 декабря 2011

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

...