Programma Python per trovare la dimensione (risoluzione) di un'immagine

Imparerai a trovare la risoluzione di un'immagine jpeg.webp in questo esempio senza usare librerie esterne

Per comprendere questo esempio, dovresti avere la conoscenza dei seguenti argomenti di programmazione Python:

  • Funzioni Python
  • Funzioni Python definite dall'utente
  • I / O di file Python

JPEG.webp (pronunciato "jay-peg") è l'acronimo di Joint Photographic Experts Group. È una delle tecniche di compressione più utilizzate per la compressione delle immagini.

La maggior parte dei formati di file ha intestazioni (iniziali pochi byte) che contengono informazioni utili sul file.

Ad esempio, le intestazioni jpeg.webp contengono informazioni come altezza, larghezza, numero di colori (scala di grigi o RGB) ecc. In questo programma, troviamo la risoluzione di un'immagine jpeg.webp leggendo queste intestazioni, senza utilizzare alcuna libreria esterna.

Codice sorgente della risoluzione di ricerca dell'immagine 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") 

Produzione

 La risoluzione dell'immagine è 280 x 280 

In questo programma, abbiamo aperto l'immagine in modalità binaria. I file non di testo devono essere aperti in questa modalità. L'altezza dell'immagine è alla 164a posizione seguita dalla larghezza dell'immagine. Entrambi sono lunghi 2 byte.

Notare che questo è vero solo per lo standard JFIF (JPEG.webp File Interchange Format). Se la tua immagine è codificata utilizzando altri standard (come EXIF), il codice non funzionerà.

Convertiamo i 2 byte in un numero utilizzando l'operatore di spostamento bit per bit <<. Infine, viene visualizzata la risoluzione.

Articoli interessanti...