Анимированный GIF в NSImageView - PullRequest
10 голосов
/ 12 апреля 2011

Я использую NSImageView для отображения анимированного GIF с примерно 80 кадрами, каждый кадр длиной 20 мс. NSImageView может отображать анимацию GIF «из коробки», но проблема в том, что ему требуется слишком много ЦП, около 10% непрерывно (на моем ядре i5 proc). Instruments показывает, что он тратит много времени процессора на декодирование GIF.

Чтобы сделать его более эффективным, я попробовал следующее без особого успеха:

  • помещение кадров в QTMovie и его воспроизведение (использует 4% для моего процесса и еще 15% для процесса QTKitServer, который воспроизводит фильм)

  • рисование непосредственно в виде с CGContextDrawImage (~ 5% загрузки ЦП) - я не экспортировал кадры GIF, я просто создал CGImageRef из 30x30px .png Я лежал вокруг.

Я не знаю, что еще попробовать. Подклассы NSImageView и каким-то образом кэширование изображений звучит как хорошая идея, но, увы, я новичок в Какао ... Любые идеи будут высоко оценены. Спасибо!

...