Obtener el tamaño de la imagen en una página web

¿Es posible recuperar información sobre imágenes en un sitio web sin tener que descargar la imagen real? Estoy interesado en ancho / alto y tamaño kb.

preguntado el 08 de enero de 11 a las 20:01

3 Respuestas

No. Puede obtener el tamaño del archivo utilizando el Content-Length header pero necesitaría al menos comenzar a descargar la imagen para obtener el ancho / alto.

Una vez que la imagen comienza a descargarse, puede analizar la transmisión y, como sugieren @BrokenGlass y @Ed Swangren, intente encontrar el ancho / alto de la imagen de esa manera.

Habiendo dicho eso, parece un montón de trabajo dado que puedes encontrar rápidamente el ancho / alto de la imagen usando las bibliotecas disponibles si descargas la imagen completa. A menos que esté tratando con imágenes masivas o una gran cantidad de imágenes, puede ser más fácil descargar los archivos y verificar su tamaño de esa manera.

Respondido el 09 de enero de 11 a las 00:01

Estoy de acuerdo en que es posible que el OP no necesite analizar el encabezado, pero creo que esta pregunta servirá a otros que realmente tienen esta restricción de rendimiento específica. En lo que respecta al OP, no tenemos forma de saberlo. - Ed s.

Muy cierto, pero solo me gustaría colocar un marcador de advertencia a lo largo de su camino para hacerles saber que leer los encabezados de las imágenes en tiempo real es una gran cantidad de esfuerzo por una recompensa (probablemente) muy pequeña. - Chris Van Opstal

Gracias. En realidad, no sé si la imagen será grande o pequeña, por lo que en algunos casos puede ser un problema de rendimiento si la imagen es grande. Examinaré las especificaciones del formato de imagen para ver si puedo mitigarlo. Gracias. - Jeremy

Algunos formatos de imagen contienen información de tamaño en el encabezado. Puede analizar el encabezado para averiguar el tamaño, pero, por supuesto, la implementación variará según el formato de la imagen.

Respondido el 09 de enero de 11 a las 00:01

Dado que la pregunta original está etiquetada con el http-headers etiqueta, creo que más bien te refieres al encabezado de la imagen, es decir, los primeros bytes de la representación binaria de la imagen. ¿Derecha? - Uwe Keim

Sí, me refiero al encabezado de la imagen. - Ed s.

El tamaño del archivo de la imagen que podría determinar con una solicitud HTTP HEAD, la respuesta contendrá la longitud del contenido, en el caso de .NET que sería HttpResponse.ContentLength.

Para determinar el ancho / alto de muchos formatos de imagen, solo necesita algunos bytes al principio del archivo, por lo que puede comenzar con eso; sin embargo, como se mencionó, depende del formato de imagen real.

Respondido el 09 de enero de 11 a las 00:01

Buena respuesta, aunque no hay garantía de que HEAD realmente sea compatible. - EricLaw

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.