Programa Python para encontrar el tamaño (resolución) de una imagen

Aprenderá a encontrar la resolución de una imagen jpeg.webp en este ejemplo sin usar bibliotecas externas

Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Python:

  • Funciones de Python
  • Funciones definidas por el usuario de Python
  • E / S de archivos de Python

JPEG.webp (pronunciado "jay-peg") son las siglas de Joint Photographic Experts Group. Es una de las técnicas de compresión más utilizadas para la compresión de imágenes.

La mayoría de los formatos de archivo tienen encabezados (pocos bytes iniciales) que contienen información útil sobre el archivo.

Por ejemplo, los encabezados jpeg.webp contienen información como altura, ancho, número de color (escala de grises o RGB), etc. En este programa, encontramos la resolución de una imagen jpeg.webp leyendo estos encabezados, sin utilizar ninguna biblioteca externa.

Código fuente de resolución de búsqueda de imagen JPEG.webp

 def jpeg.webp_res(filename): """"This function prints the resolution of the jpeg.webp image file passed into it""" # open image for reading in binary mode with open(filename,'rb') as img_file: # height of image (in 2 bytes) is at 164th position img_file.seek(163) # read the 2 bytes a = img_file.read(2) # calculate height height = (a(0) << 8) + a(1) # next 2 bytes is width a = img_file.read(2) # calculate width width = (a(0) << 8) + a(1) print("The resolution of the image is",width,"x",height) jpeg.webp_res("img1.jpg.webp") 

Salida

 La resolución de la imagen es 280 x 280 

En este programa, abrimos la imagen en modo binario. Los archivos que no son de texto deben estar abiertos en este modo. La altura de la imagen está en la posición 164 seguida del ancho de la imagen. Ambos tienen 2 bytes de longitud.

Tenga en cuenta que esto solo es cierto para el estándar de formato de intercambio de archivos JPEG.webp (JFIF). Si su imagen está codificada con otro estándar (como EXIF), el código no funcionará.

Convertimos los 2 bytes en un número usando el operador de desplazamiento bit a bit <<. Finalmente, se muestra la resolución.

Articulos interesantes...