Pergunta

seguinte situação:

Eu tenho uma instância de minha NSObject objeto sublcassed. Uma das suas propriedades é um NSImage. Depois instanciating o objeto que eu convertê-lo com NSKeyedArchiver aos dados, enviá-lo através da rede, desarquivar com NSKeyedUnarchiver e exibir a imagem em um NSImageView (setAnimates: yes). Até aqui não há problemas. A imagem pode ser exibida na outra máquina. Agora o problema:
Se eu enviar um GIF animado, não será animado. Não sei porquê ... Alguma idéia por que as estadias de animação embora? Obrigado!

Atualização

Se eu abrir a imagem animada antes de arquivá-lo a NSImageView anima. O problema é talvez o arquivamento ...

UPDATE 2

Eu testei todo o fluxo de trabalho sem enviar os dados através da rede, apenas arquivar e desarmazenando-lo novamente. Como eu suspeitava, é um problema com NSKeyed (Un) Archiver.
A animação fica perdido. Mas o que fazer para evitar isso?

Foi útil?

Solução

Eu simplesmente arquivar os dados da imagem original, em vez da instância de imagem.

Outras dicas

Por padrão, NSImage não retém os dados da imagem da fonte original. O que é provavelmente a acontecer é que NSImage está arquivando o bitmap estático de um quadro única e descartando o conteúdo original.

Se você chamar [yourNSImageObject setDataRetained:YES] então o NSImage deve pendurar aos dados originais (neste caso, o GIF animado). Eu sugiro que você tente fazer isso quando a imagem é criada pela primeira vez, e depois ver o que acontece quando é arquivado / unarchived.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top