English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Corso di base di Python

Controllo dei flussi in Python

Funzioni in Python

Tipi di dati in Python

Operazioni di file in Python

Oggetti e classi in Python

Date e ora in Python

Conoscenze avanzate di Python

Manuale di riferimento di Python

Il programma Python trova la dimensione dell'immagine (risoluzione)

Enciclopedia degli esempi di Python

In questo esempio imparerai come trovare la risoluzione di un'immagine jpeg senza utilizzare librerie esterne

Per comprendere questo esempio, dovresti conoscere i seguentiProgrammazione PythonArgomento:

JPEG (pronunciato 'jay-peg') sta per Joint Photographic Experts Group. È una delle tecnologie di compressione di immagini più utilizzate.

Molti formati di file hanno un'intestazione (i primi byte), che contiene informazioni utili sul file.

Ad esempio, l'intestazione JPEG contiene altezza, larghezza, numero di colori (grigio o RGB) e altre informazioni. In questo programma, abbiamo trovato la risoluzione dei jpeg image leggendo queste intestazioni senza utilizzare alcuna libreria esterna.

Codice di ricerca della risoluzione dell'immagine JPEG

def jpeg_res(filename):
   """Questa funzione stampa la risoluzione di un file di immagine jpeg passato come argomento"""
   # Apriamo l'immagine in modalità binaria per leggere
   with open(filename, 'rb') as img_file:
       # L'altezza dell'immagine (in byte di 2) si trova alla posizione 164
       img_file.seek(163)
       # Leggi 2 byte
       a = img_file.read(2)
       # Calcolo dell'altezza
       height = (a[0] << 8) + a[1]
       # I prossimi due byte sono la larghezza
       a = img_file.read(2)
       # Calcolo della larghezza
       width = (a[0] << 8) + a[1]
   print("La risoluzione dell'immagine è", width, "x", height)
jpeg_res("img1.jpg")

Risultato di output

La risoluzione dell'immagine è 280 x 280

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

Attenzione, questo si applica solo al formato di scambio di file JPEG (JFIF) standard. Se la tua immagine è codificata con altri standard (come EXIF), il codice non funzionerà.

Usiamo l'operatore di shift a destra bitwise << per convertire 2 byte in un numero. Infine, mostriamo la risoluzione.

Enciclopedia degli esempi di Python