Acabo de terminar haciendo esto exactamente en un proyecto. El lado HTML se parecía un poco a esto:
<a href="[fullsize]" class="gallerypic" title="">
<img src="[thumbnail pic]" height="90" width="140" alt="[Gallery Photo]" class="pic" />
<span class="zoom-icon">
<img src="/images/misc/zoom.gif" width="32" height="32" alt="Zoom">
</span>
</a>
Luego usando CSS:
a.gallerypic{
width:140px;
text-decoration:none;
position:relative;
display:block;
border:1px solid #666;
padding:3px;
margin-right:5px;
float:left;
}
a.gallerypic span.zoom-icon{
visibility:hidden;
position:absolute;
left:40%;
top:35%;
filter:alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
}
a.gallerypic:hover span.zoom-icon{
visibility:visible;
}
Dejé una gran parte de la muestra allí en el CSS para que puedan ver cómo decidí hacer el estilo. Tenga en cuenta que bajé la opacidad para que pueda ver a través de la lupa.
Espero que esto ayude.
EDITAR: Para aclarar su ejemplo, puede ignorar visibility:hidden;
y matar la :hover
ejecución si lo desea, así fue como lo hice.