Python-Programm zum Ermitteln der Größe (Auflösung) eines Bildes

In diesem Beispiel lernen Sie, die Auflösung eines JPEG.webp-Bildes ohne Verwendung externer Bibliotheken zu ermitteln

Um dieses Beispiel zu verstehen, sollten Sie die folgenden Python-Programmierthemen kennen:

  • Python-Funktionen
  • Benutzerdefinierte Python-Funktionen
  • Python File I / O.

JPEG.webp (ausgesprochen "jay-peg") steht für Joint Photographic Experts Group. Es ist eine der am häufigsten verwendeten Komprimierungstechniken für die Bildkomprimierung.

Die meisten Dateiformate haben Header (anfänglich einige Bytes), die nützliche Informationen über die Datei enthalten.

Zum Beispiel enthalten JPEG.webp-Header Informationen wie Höhe, Breite, Anzahl der Farben (Graustufen oder RGB) usw. In diesem Programm finden wir die Auflösung eines JPEG.webp-Bildes, das diese Header liest, ohne eine externe Bibliothek zu verwenden.

Quellcode der Suchauflösung des JPEG.webp-Bildes

 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") 

Ausgabe

 Die Auflösung des Bildes beträgt 280 x 280 

In diesem Programm haben wir das Bild im Binärmodus geöffnet. In diesem Modus müssen Nicht-Textdateien geöffnet sein. Die Höhe des Bildes befindet sich an der 164. Position, gefolgt von der Breite des Bildes. Beide sind 2 Bytes lang.

Beachten Sie, dass dies nur für den JFIF-Standard (JPEG.webp File Interchange Format) gilt. Wenn Ihr Bild mit einem anderen Standard (wie EXIF) codiert wird, funktioniert der Code nicht.

Wir konvertieren die 2 Bytes mit dem bitweisen Verschiebungsoperator << in eine Zahl. Schließlich wird die Auflösung angezeigt.

Interessante Beiträge...