Question

Suite à la situation:

J'ai une instance de mon NSObject objet sublcassed. Une de ses propriétés est un NSImage. Après instancier l'objet que je convertir avec NSKeyedArchiver aux données, l'envoyer sur le réseau, décompressez avec NSKeyedUnarchiver et afficher l'image dans un NSImageView (setAnimates: OUI). Jusqu'à là, il n'y a aucun problème. L'image peut être affichée sur l'autre machine. Maintenant, le problème:
Si je vous envoie un fichier GIF animé, il ne sera pas animer. Je ne sais pas pourquoi ... Toutes les idées pourquoi l'animation reste à l'écart? Merci!

UPDATE

Si j'ouvre l'image animée avant l'archiver NSImageView l'anime. Le problème est peut-être l'archivage ...

Mise à jour 2

Je l'ai testé tout le flux de travail sans envoyer les données sur le réseau, tout archivage et désarchivage encore. Comme je le pensais, il y a un problème avec NSKeyed (Un) Archiveur.
L'animation se perd. Mais ce qu'il faut faire pour empêcher cela?

Était-ce utile?

La solution

Je voudrais simplement archiver les données d'image d'origine, au lieu de l'instance d'image.

Autres conseils

Par défaut, NSImage ne conserve pas les données d'image source d'origine. Ce qui est probablement se produire est que NSImage est l'archivage du bitmap statique d'une trame seulement et jeter le contenu original.

Si vous appelez [yourNSImageObject setDataRetained:YES] alors le NSImage devrait accrocher aux données d'origine (dans ce cas, le GIF animé). Je vous suggère essayer de faire cela lorsque l'image est d'abord créé, puis voir ce qui se passe quand il est archivé / désarchivée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top