Program Python na vyhľadanie veľkosti (rozlíšenia) obrázka

Naučíte sa nájsť rozlíšenie obrázka jpeg.webp v tomto príklade bez použitia externých knižníc

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Python:

  • Pythonove funkcie
  • Užívateľom definované funkcie v jazyku Python
  • V / V súborov Python

JPEG.webp (vyslovuje sa „jay-peg“) znamená Joint Photographic Experts Group. Je to jedna z najbežnejšie používaných kompresných techník na kompresiu obrázkov.

Väčšina formátov súborov má hlavičky (počiatočných niekoľko bajtov), ​​ktoré obsahujú užitočné informácie o súbore.

Napríklad hlavičky jpeg.webp obsahujú informácie ako výška, šírka, počet farieb (v odtieňoch sivej alebo RGB) atď. V tomto programe nájdeme rozlíšenie obrázka jpeg.webp, ktorý tieto hlavičky číta bez použitia akejkoľvek externej knižnice.

Zdrojový kód nálezového rozlíšenia obrázka JPEG.webp

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

Výkon

 Rozlíšenie obrázka je 280 x 280 

V tomto programe sme otvorili obraz v binárnom režime. V tomto režime musia byť otvorené netextové súbory. Výška obrázka je na 164. pozícii, za ktorým nasleduje šírka obrázka. Oba majú dĺžku 2 bajty.

Toto platí iba pre štandard JPF File Interchange Format (JFIF). Ak je váš obrázok kódovaný pomocou iného štandardu (napríklad EXIF), kód nebude fungovať.

Tieto 2 bajty prevedieme na číslo pomocou operátora bitového radenia <<. Nakoniec sa zobrazí rozlíšenie.

Zaujímavé články...