Python-program för att hitta storlek (upplösning) på en bild

Du lär dig att hitta upplösningen på en jpeg.webp-bild i detta exempel utan att använda externa bibliotek

För att förstå detta exempel bör du ha kunskap om följande Python-programmeringsämnen:

  • Python-funktioner
  • Python användardefinierade funktioner
  • Python File I / O

JPEG.webp (uttalad "jay-peg") står för Joint Photographic Experts Group. Det är en av de mest använda kompressionsteknikerna för bildkomprimering.

De flesta filformaten har rubriker (initialt några byte) som innehåller användbar information om filen.

Till exempel innehåller jpeg.webp-rubriker information som höjd, bredd, antal färger (gråskala eller RGB) etc. I detta program hittar vi upplösningen på en jpeg.webp-bild som läser dessa rubriker utan att använda något externt bibliotek.

Källkod för hitta upplösning av JPEG.webp-bild

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

Produktion

 Bildens upplösning är 280 x 280 

I det här programmet öppnade vi bilden i binärt läge. Icke-textfiler måste vara öppna i detta läge. Bildens höjd är på 164: e plats följt av bildens bredd. Båda är två byte långa.

Observera att detta endast gäller för JPEG.webp File Interchange Format (JFIF) -standard. Om din bild är kodad med en annan standard (som EXIF) fungerar inte koden.

Vi konverterar de 2 bytes till ett nummer med hjälp av bitvis skiftande operator <<. Slutligen visas upplösningen.

Intressanta artiklar...