Hola, pues también lo podrías hacer con display=inline-block, con esta propiedad el div se ajustará a su contenido.
Ahora, para centrarlo, tendrías que hacer un div que contenga a ese otro div con la propiedad de text-align:center.
De esta forma no tendrás que especificar el ancho del div para que se centre. ;).
Te dejo el código de una prueba (puse un borde y una imágen de internet para que veas como funciona).
Código HTML:
Ver original
.contenedor {
text-align:center;
}
.div1{
border:solid 4px black;
display:inline-block;
margin-left:auto;
margin-right:auto;
text-align:center;
}
<img src="http://www.lossimpsons.net/Imagenes/navidadsimpsons2.gif"/>
saludos.!