2010-09-03 8 views
8

He visto la sesión 104 de WDC2010 para usar scrollviews y CATiledLayers, lo cual es muy bueno. Pero no estoy seguro de la generación de las imágenes de mosaico. El ejemplo tenía las imágenes de baldosas de ranas ya creadas. Pero si tengo una aplicación de fotos donde estoy tomando mis propias fotos, tendré que crear las fichas yo mismo y no estoy seguro de cuál es el mejor enfoque para tomar.Generación de teselas dinámicas para CATiledLayer

El método más fácil sería tan pronto como tome una foto y la almacene, realizo algunas manipulaciones de imagen y creo todos los mosaicos posibles que necesito. Pero eso significa que para cada foto, estoy almacenando muchos más archivos y usando más espacio de archivos.

Justo antes de necesitar la foto, creo las fichas en un directorio temporal. Cuando termine la parte de visualización, puedo eliminar ese directorio temporal. Al menos solo estoy usando el espacio extra para archivos al ver las fotos. Pero me preocuparía cargar la imagen para crear mosaicos en cuanto a si introduzco un retraso que sea notable para el usuario.

Respuesta

1

No necesita guardar las imágenes embaldosadas. Básicamente, crearía el UIImage/CGImage basado en el rect que se muestra.

He hecho algo similar aquí y funciona bastante bien, la ventaja es que es muy eficiente con la memoria. Genero dinámicamente el CGImage (el pequeño mosaico de la imagen grande) basado en el rect que se muestra y el TiledLayer lo quita de la memoria cuando vuelca el rect. Nunca guardo el CGImage en un archivo.

La desventaja de este enfoque es que introduce latencia en el procesamiento ... No es bueno para juegos en un iphone 3g.

+0

¿Algún código de muestra de cómo está generando la imagen CG desde solo parte del UIImage? Parece que el problema es que tienes que cargar todo el UIImage en la memoria, que las imágenes de varios mosaicos ayudan a resolver. ¡Gracias! – Matt