Hola IO,
creo que en vez de hacerlo desde PHP podrias usar CSS y la propiedad opacity para hacer un efecto parecido desde el propio navegador del usuario
capa.style.filter="alpha(opacity=85)"; // Opacidad para IE
capa.style.opacity="0.85"; // Ocapacidad para Netscape
Asi cuando eligen una categoria, mediante javascript alteras dinámicamente el valor de la opacidad de cada capa.
De todas formas para trabajar con imagenes en PHP tienes la libreria GD
http://es2.php.net/image
pero a mi no me parece práctico hacer ese efecto desde PHP, creo que es mejor buscar algo desde HTML/CSS/Javascript o incluso usar algo de Flash
suerte!