Hola,
Pues cansado de que @dual3nigma se la pase mostrando sus experimentos con HTML5 el solito (?) me he puesto a jugar un poco con Canvas, y con una idea que propuso @Rafael hice esto.
Se trata de usar una los datos de una imagen en Escala de grises para aplicarlos como transparencia a otra imagen. Vaya, mejor vemos el ejemplo para que no quede duda de que es lo que hace este script: http://charlyroman.com.mx/opacity/ los que hayan trabajado con Mapas de Opacidad en algún programa 3D estilo Blender o 3ds Max sabrán más o menos que es esto.
Bien Charly, se ve lindo y ahora ¿para que sirve esto? ¿No tenemos PNG's? Bueno sí, de echo me di cuenta que se generan PNG's, pero el chiste es que por ejemplo imágenes muy complejas pueden a llegar a pesar considerablemente en PNG, una ventaja de esto es poder enviar las imágenes en JPG para ahorrar peso. Otra cosa es que se puede usar el mismo mapa de opacidad para varias imágenes. Incluso se pueden usar dentro de un videojuego en canvas.
Bueno, pues ahí si quieren ver el código en Github: https://github.com/Carlangueitor/OpcityMap.js
Eso si, como sabrán no soy master en programación, así que probablemente tendrá fallos y errores, así que me gustaría que me comentasen si los ven.
Saludos