Python-program for å finne størrelsen (oppløsningen) på et bilde

Du vil lære å finne oppløsningen til et jpeg.webp-bilde i dette eksemplet uten å bruke eksterne biblioteker

For å forstå dette eksemplet, bør du ha kunnskap om følgende Python-programmeringsemner:

  • Python-funksjoner
  • Python brukerdefinerte funksjoner
  • Python File I / O

JPEG.webp (uttales "jay-peg") står for Joint Photographic Experts Group. Det er en av de mest brukte komprimeringsteknikkene for bildekomprimering.

De fleste filformatene har overskrifter (innledende få byte) som inneholder nyttig informasjon om filen.

For eksempel inneholder jpeg.webp-overskrifter informasjon som høyde, bredde, antall farger (gråtoner eller RGB) osv. I dette programmet finner vi oppløsningen til et jpeg.webp-bilde som leser disse overskriftene, uten å bruke noe eksternt bibliotek.

Kildekode for finne oppløsning av JPEG.webp-bilde

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

Produksjon

 Oppløsningen på bildet er 280 x 280 

I dette programmet åpnet vi bildet i binær modus. Ikke-tekstfiler må være åpne i denne modusen. Høyden på bildet er på 164. posisjon etterfulgt av bredden på bildet. Begge er to byte lange.

Merk at dette bare gjelder JPEG.webp File Interchange Format (JFIF) -standard. Hvis bildet ditt er kodet ved hjelp av en annen standard (som EXIF), fungerer ikke koden.

Vi konverterer de 2 byte til et tall ved hjelp av bitvis skiftende operator <<. Til slutt vises oppløsningen.

Interessante artikler...