Python program a kép méretének (felbontásának) megkeresésére

Ebben a példában megtanulja megtalálni a JPEG.webp-kép felbontását külső könyvtárak használata nélkül

A példa megértéséhez ismernie kell a következő Python programozási témákat:

  • Python függvények
  • Python Felhasználó által definiált függvények
  • Python fájl I / O

A JPEG.webp (ejtsd: "jay-peg") jelentése a Joint Photographic Experts Group. Ez az egyik legszélesebb körben alkalmazott tömörítési technika a képtömörítéshez.

A legtöbb fájlformátum fejlécekkel rendelkezik (kezdeti néhány bájt), amelyek hasznos információkat tartalmaznak a fájlról.

Például a jpeg.webp fejlécek olyan információkat tartalmaznak, mint a magasság, a szélesség, a színek száma (szürkeárnyalatos vagy RGB) stb. Ebben a programban megtalálhatjuk egy ezeket a fejléceket olvasó jpeg.webp kép felbontását, külső könyvtár használata nélkül.

A JPEG.webp-kép keresési felbontásának forráskódja

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

Kimenet

 A kép felbontása 280 x 280 

Ebben a programban bináris módban nyitottuk meg a képet. A nem szöveges fájloknak nyitva kell lenniük ebben a módban. A kép magassága a 164. pozícióban van, amelyet a kép szélessége követ. Mindkettő 2 bájt hosszú.

Vegye figyelembe, hogy ez csak a JPEG.webp File Interchange Format (JFIF) szabványra igaz. Ha a kép kódolása más szabványokkal történik (például EXIF), akkor a kód nem fog működni.

A 2 bájtot számokká konvertáljuk a bitenkénti váltás << művelettel. Végül megjelenik a felbontás.

érdekes cikkek...