Editar:
Para obtener el tamaño actual en el navegador de píxeles de un elemento DOM (en su caso los elementos IMG) con exclusión de la frontera y el margen, puede utilizar los clientWidth y clientHeight propiedades.
var img = document.getElementById('imageId');
var width = img.clientWidth;
var height = img.clientHeight;
ahora para obtener el tamaño de archivo, ahora sólo puedo pensar en el fileSize property que Internet Explorer expone por documentos y elementos IMG ...
Edición 2: Algo viene a la mente ..
Para obtener el tamaño de un archivo alojado en el servidor, simplemente puede hacer un HEAD HTTP Request usando Ajax. Este tipo de solicitud se utiliza para obtener metainformación sobre la URL implícita en la solicitud sin transferir ningún contenido de la misma en la respuesta.
Al final de la solicitud HTTP, tenemos acceso a los encabezados HTTP de respuesta, incluido el Content-Length que representa el tamaño del archivo en bytes.
Un ejemplo básico usando prima XHR:
var xhr = new XMLHttpRequest();
xhr.open('HEAD', 'img/test.jpg', true);
xhr.onreadystatechange = function(){
if (xhr.readyState == 4) {
if (xhr.status == 200) {
alert('Size in bytes: ' + xhr.getResponseHeader('Content-Length'));
} else {
alert('ERROR');
}
}
};
xhr.send(null);
Nota: Tenga en cuenta que cuando se hace peticiones Ajax, se encuentra restringido por la Same origin policy, lo que le permite hacer solicitudes sólo dentro del mismo dominio .
Compruebe una prueba de concepto en funcionamiento here.
Datos 3:
1.) Sobre el Content-Length, creo que una falta de coincidencia de tamaño podría ocurrir por ejemplo si se gzipped la respuesta del servidor, puede hacer algunas pruebas para ver si esto sucede en tu servidor
2.) Para obtener las dimensiones originales de una imagen, puede crear un elemento IMG mediante programación, por ejemplo:
var img = document.createElement('img');
img.onload = function() { alert(img.width + ' x ' + img.height); };
img.src='http://sstatic.net/so/img/logo.png';
Tenga en cuenta que las tres primeras respuestas son sobre la escritura incorrecta que comencé (donde dije que estaba hablando de carga de imágenes). Mis disculpas a esas personas. – scottru