Google Chrome и Safari возвращают ширину и высоту картинки равный нулю по той причине, что они вычисляют её размер только после загрузки. Можно поступить так:
var img = $("img")[0]; // Получаем IMG нашей картинки var pic_real_width, pic_real_height; $("<img/>") // Сделаем в памяти копию этой картинки, чтобы избежать проблем с CSS .attr("src", $(img).attr("src")) .load(function() { // Здесь копия нашей картинки загружена и можно получить её размеры pic_real_width = this.width; // Учтите: $(this).width() не сработает pic_real_height = this.height; // потому что картинка находится в памяти. });