Breaking

Post Top Ad

Your Ad Spot

martes, 17 de diciembre de 2019

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

Aprenderá a encontrar la resolución de una imagen JPEG en este ejemplo sin usar bibliotecas externas
Para comprender este ejemplo, debe tener conocimiento de los siguientes temas de programación de Python :
  • Funciones de Python
  • Funciones definidas por el usuario de Python
  • E / S de archivo Python
JPEG (pronunciado "jay-peg") significa 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 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 que lee estos encabezados, sin usar ninguna biblioteca externa.

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

  1. def jpeg_res(filename):
  2. """"This function prints the resolution of the jpeg image file passed into it"""
  3. # open image for reading in binary mode
  4. with open(filename,'rb') as img_file:
  5. # height of image (in 2 bytes) is at 164th position
  6. img_file.seek(163)
  7. # read the 2 bytes
  8. a = img_file.read(2)
  9. # calculate height
  10. height = (a[0] << 8) + a[1]
  11. # next 2 bytes is width
  12. a = img_file.read(2)
  13. # calculate width
  14. width = (a[0] << 8) + a[1]
  15. print("The resolution of the image is",width,"x",height)
  16. jpeg_res("img1.jpg")
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 es cierto solo para el formato JPEG File Interchange Format (JFIF). Si su imagen se codifica utilizando otro estándar (como EXIF), el código no funcionará.
Convertimos los 2 bytes en un número utilizando el operador de desplazamiento bit a bit <<. Finalmente, se muestra la resolución.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas