ahora creo a ver entendido. fíjate en los cambios he hecho
Cita: function mostrarImagen() {
var nombre_imagen = "imagen.jpg?cache="+ new Date();
img = new Image();
img.src = nombre_imagen;
img.onload=function(){
var alto = this.height; //Alto;
var ancho = this.width; //Ancho;
if (alto <= 400) {
alto = (400 - alto)/2;
document.getElementById('solicitud-imagen').style.marginTop = alto + 'px';
}
if (ancho <= 400) {
ancho = (400 - ancho)/2;
document.getElementById('solicitud-imagen').style.marginLeft = ancho + 'px';
}
document.getElementById('solicitud-imagen').src = this.src;
}
//img.src = nombre_imagen+'?'+(+new Date);//esto lo agregamos para las versiones de explorer que ignoran el evento onload si la imagen está en caché -esto evita la carga desde la caché-
}
la imagen no se mostrará hasta que esté cargada y una vez cargada se mostrará en el centro