No es nada sencillo lo que propones, sobre todo por la pega de que cambias la imagen y tiene tamaños diferentes. En CSS2 no se puede centrar verticalemente (si, es así de duro). Lo que hay es muchos trucos.
Si sabes el tamaño de la imagen lo más normal es centrarlo usando lo que se propone
aquí. Otro truco es usar la propiedad vertical-align que tienen los img, cuyo cometido es centrar verticalemente el texto que rodea a una imagen, puedes ver la idea
aquí.
Espero que alguno de los enlaces te sirva, creo que la solución por la que yo tiraría sería la primera, pero añadiría PHP para detectar el tamaño de la imagen y ajustar los valores.
Un saludo.