Naučíte se najít rozlišení obrázku jpeg.webp v tomto příkladu bez použití externích knihoven
Abychom porozuměli tomuto příkladu, měli byste znát následující témata programování v Pythonu:
- Funkce Pythonu
- Uživatelem definované funkce Pythonu
- V / V souboru Python
JPEG.webp (vyslovuje se „jay-peg“) znamená Joint Photographic Experts Group. Je to jedna z nejpoužívanějších kompresních technik pro kompresi obrazu.
Většina formátů souborů má záhlaví (počáteční několik bajtů), které obsahují užitečné informace o souboru.
Například záhlaví jpeg.webp obsahují informace, jako je výška, šířka, počet barev (ve stupních šedi nebo RGB) atd. V tomto programu najdeme rozlišení obrázku jpeg.webp, který čte tyto záhlaví bez použití jakékoli externí knihovny.
Zdrojový kód nálezového rozlišení obrázku 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ýstup
Rozlišení obrázku je 280 x 280
V tomto programu jsme otevřeli obraz v binárním režimu. V tomto režimu musí být otevřeny netextové soubory. Výška obrázku je na 164. pozici, následovaná šířkou obrázku. Oba jsou 2 bajty dlouhé.
To platí pouze pro standard JPF File Interchange Format (JFIF). Pokud je váš obrázek kódován pomocí jiného standardu (například EXIF), kód nebude fungovat.
2 bajty převedeme na číslo pomocí operátoru bitového posunu <<. Nakonec se zobrazí rozlišení.