Анимация NSImage теряется после архивирования ее с помощью NSKeyedArchiver

StackOverflow https://stackoverflow.com/questions/2238872

Вопрос

Следующая ситуация:

У меня есть пример моего NSObject переданный в субаренду объект.Одним из его свойств является NSImage.После создания экземпляра объекта я преобразую его с помощью NSKeyedArchiver к данным, отправьте их по сети, разархивируйте с помощью NSKeyedUnarchiver и отобразите изображение в NSImageView (Множество живых существ:ДА).Пока здесь нет никаких проблем.Изображение может быть отображено на другом компьютере.Теперь о проблеме:
Если я отправлю анимированный gif-файл, он не будет анимирован.Я не знаю почему...Есть какие-нибудь идеи, почему анимация остается в стороне?Спасибо!

Обновить

Если я открою анимированное изображение перед его архивацией, то NSImageView оживляет его.Возможно, проблема в архивировании...

ОБНОВЛЕНИЕ 2

Я протестировал весь рабочий процесс без отправки данных по сети, просто заархивировав и разархивировав их снова.Как я и подозревал, это проблема с архиватором NSKeyed (Un).
Анимация теряется. Но что сделать, чтобы предотвратить это?

Это было полезно?

Решение

Я бы просто заархивировал исходные данные изображения, а не экземпляр изображения.

Другие советы

По умолчанию, NSImage не сохраняет исходные данные исходного изображения.Вероятно, происходит вот что NSImage архивирует статическое растровое изображение только одного кадра и удаляет исходное содержимое.

Если ты позвонишь [yourNSImageObject setDataRetained:YES] затем NSImage следует придерживаться исходных данных (в данном случае анимированного GIF).Я бы посоветовал вам попробовать сделать это при первом создании изображения, а затем посмотреть, что произойдет, когда оно будет заархивировано / разархивировано.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top