Compresión de un enorme file png para usar en un juego de iphone

Tengo un file de background que deseo usar en un juego de iPhone que actualmente tiene 40 MB. Es un file .png y me gustaría comprimirlo en el tamaño más pequeño posible sin perder mucha calidad Y sin perder el canal alfa. He cambiado con éxito el tamaño de file de un file similar grande simplemente cambiando su tipo de file a un file .jpg. Sin embargo, esta image no tenía transparencia y, por lo que sé, no se puede cambiar un .png a .jpg sin perder transparencia. Quizás estoy equivocado (y, por favor, corríjame si lo hago). Si hay una forma de comprimir este file .png, explícame cómo se hace. Además, tenga en count que es un file bastante grande y que sería preferible que se comprimiera dentro de un intervalo de time de 5 horas o inferior si es posible. ¡Gracias!

Xcode comprime pngs, debe ver cuán grande es la image en realidad dentro de la aplicación construida. Es posible comprimir imágenes más de lo que hace Xcode con ImageOptim, pero son un poco más lentas para mostrarse en la pantalla, esto probablemente no sea un problema para su image de background.

¿Cómo estás construyendo el juego? Si está usando OpenGL directamente, y si está satisfecho con la compression que ofrece, PVR es un formatting increíble para imágenes mucho más pequeñas y realmente rápidas.

PVRTC en Wikipedia

Como dijo keegan3d, Xcode recompensa las imágenes PNG, usando PNGCrush. Cambia el order de bytes y premultiple el alfa. Este artículo explica lo que sucede: iPhone "Optimized" PNG

Si deja la compression PNG de Xcode habilitada, no verá ningún beneficio al usar herramientas de compression PNG : compression PNG y aplicaciones de iOS

Si desea deshabilitar la compression de Xcode para una sola image (para que pueda utilizar una herramienta de compression alternativa), creo que puede cambiar el tipo de file de image.png a file , como se explica aquí: ¿Cómo puedo omitir la compression de una PNG ?

Y … tenga un poco de cuidado con el uso de RAM. Un JPEG y un PNG descomprimirán al mismo tamaño (suponiendo que no tienen alfa). 40MB es bastante grande. ¿Tienes otras forms de dibujar el background? He trabajado en un juego con un área de reproducción de bitmap de 2048 x 2048 que se basaba en bitmap. Usamos PVR y azulejos. Las imágenes PVR usan less RAM que PNG, y son más rápidas.

En mi punto de reference, el tamaño más pequeño y las imágenes PNG de carga más rápidas fueron PNG8 + alfa creadas con ImageAlpha / pngquant .

Si su background es en su mayoría plano o monocromático (no demasiado borroso / degradado), entonces se verá bien como PNG8 + alfa.

Puede mejorar la compresibilidad de las imágenes PNG24 + alfa posterinándolas de forma inteligente .

Sin embargo, una image PNG de 40 MB sigue siendo enorme. No me sorprendería si te estuviera causando problemas de memory. Considera dividirlo en fichas más pequeñas.