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.