Ya he solucionado el problema con el original. Al final he encontrado la solución con $(window).load(... que me sirve para lo que quiero. El script resultante es este así:
var altura_div_padre = $(".img_div").css("height");
var altura_div_padre = altura_div_padre.slice(0, -2); // Alto del div "padre" que contiene la imagen
Código PHP:
$(window).load(function(){ // Se espera a que se carguen las imagenes antes de ajustar la posicion
$(".img_thumb").each(function() {
// Altura de la imagen
var altura_img = $(this).attr("height");
// Restamos altura del div "padre" y dividimos entre 2 redondeando a entero
var resto_altura = Math.round((altura_div_padre - altura_img) / 2);
// Centramos la imagen con el resultado
$(this).css("position" , "relative").css("top" , resto_altura);
$(this).css("visibility","visible");
});
})
con $(window).load(... me ajuta las imagenes despues de cargarlas.
Saludos.