Python program za pronalaženje veličine (razlučivosti) slike

U ovom ćete primjeru naučiti pronaći razlučivost jpeg.webp slike bez korištenja vanjskih knjižnica

Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja na Pythonu:

  • Python funkcije
  • Python korisnički definirane funkcije
  • Ulaz / izlaz datoteke Python

JPEG.webp (izgovara se "jay-peg") označava Joint Photographic Experts Group. To je jedna od najčešće korištenih tehnika kompresije za kompresiju slike.

Većina formata datoteka ima zaglavlja (početnih nekoliko bajtova) koja sadrže korisne informacije o datoteci.

Na primjer, jpeg.webp zaglavlja sadrže informacije poput visine, širine, broja boja (sive ili RGB) itd. U ovom programu pronalazimo razlučivost jpeg.webp slike koja čita ova zaglavlja, bez upotrebe vanjske knjižnice.

Izvorni kod za pronalaženje razlučivosti JPEG.webp slike

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

Izlaz

 Rezolucija slike je 280 x 280 

U ovom programu otvorili smo sliku u binarnom načinu. Datoteke koje nisu tekstualne moraju biti otvorene u ovom načinu. Visina slike je na 164. mjestu praćena širinom slike. Oba su dugačka 2 bajta.

Imajte na umu da to vrijedi samo za standard JPEG.webp File Interchange Format (JFIF). Ako vaša slika kodira pomoću drugog standarda (poput EXIF), kôd neće raditi.

2 bajta pretvaramo u broj pomoću bitskog operatora pomicanja <<. Na kraju se prikazuje razlučivost.

Zanimljivi članci...