У овом примеру ћете научити да пронађете резолуцију јпег слике без употребе спољних библиотека
Да бисте разумели овај пример, требало би да имате знање о следећим Питхон програмским темама:
- Питхон функције
- Питхон кориснички дефинисане функције
- Улаз / излаз датотеке Питхон
ЈПЕГ (изговара се „јаи-пег“) означава заједничку групу фотографских стручњака. То је једна од најчешће коришћених техника компресије за компресију слике.
Већина формата датотека има заглавља (почетних неколико бајтова) која садрже корисне информације о датотеци.
На пример, јпег заглавља садрже информације попут висине, ширине, броја боја (сивих тонова или РГБ) итд. У овом програму проналазимо резолуцију јпег слике која чита ова заглавља, без употребе спољне библиотеке.
Изворни код за проналажење резолуције ЈПЕГ слике
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")
Оутпут
Резолуција слике је 280 к 280
У овом програму отворили смо слику у бинарном режиму. Нетекстуалне датотеке морају бити отворене у овом режиму. Висина слике је на 164. месту праћена ширином слике. Оба су дугачка 2 бајта.
Имајте на уму да ово важи само за стандард ЈПЕГ Филе Интерцханге Формат (ЈФИФ). Ако је ваша слика кодирана помоћу другог стандарда (попут ЕКСИФ), код неће радити.
2 бајта претварамо у број помоћу оператора померања у битовима <<. На крају се приказује резолуција.