Pregunta

siguiente situación:

Tengo una instancia de mi NSObject objeto sublcassed. Una de sus propiedades es un NSImage. Después instanciando el objeto convierto con NSKeyedArchiver a los datos, enviarlo a través de la red, descomprimirlo con NSKeyedUnarchiver y mostrar la imagen en un NSImageView (setAnimates: Sí). Hasta aquí no hay problemas. La imagen se puede visualizar en la otra máquina. Ahora el problema:
Si envío un gif animado, no va a animar. No sé por qué ... ¿Alguna idea de por qué la animación se mantiene lejos? Gracias!

ACTUALIZACIÓN

Si abro la imagen animada que antes de archivar el NSImageView anima. El problema es tal vez el archivo ...

Actualización 2

He probado todo el flujo de trabajo sin necesidad de enviar los datos a través de la red, simplemente archivar y desarchivándolos nuevo. Como sospechaba que un problema con NSKeyed (Un) Archiver.
La animación se pierde. ¿Pero qué hacer para evitar esto?

¿Fue útil?

Solución

Me simplemente archivar los datos de imagen originales, en lugar de la instancia imagen.

Otros consejos

Por defecto, NSImage no retiene los datos de la imagen fuente original. Lo que es probable que suceda es que NSImage está archivando el mapa de bits de una trama estática única y desechar el contenido original.

Si llama [yourNSImageObject setDataRetained:YES] entonces el NSImage debe aferrarse a los datos originales (en este caso, el GIF animado). Yo te sugeriría que intenta hacer esto cuando se crea la imagen en primer lugar, y luego ver lo que sucede cuando se está archivada / no archivada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top