„Python“ programa, skirta rasti vaizdo dydį (skiriamąją gebą)

Šiame pavyzdyje išmoksite rasti JPG.webp vaizdo raišką nenaudodami išorinių bibliotekų

Norėdami suprasti šį pavyzdį, turite žinoti apie šias „Python“ programavimo temas:

  • „Python“ funkcijos
  • „Python“ vartotojo nustatytos funkcijos
  • „Python“ failo įvestis / išvestis

JPEG.webp (tariama „jay-peg“) reiškia Jungtinę fotografijos ekspertų grupę. Tai yra viena iš plačiausiai naudojamų glaudinimo būdų vaizdų glaudinimui.

Daugumoje failų formatų yra antraštės (pradiniai keli baitai), kuriose yra naudingos informacijos apie failą.

Pvz., JPEG.webp antraštėse yra tokia informacija kaip aukštis, plotis, spalvų skaičius (pilkos spalvos arba RGB) ir pan. Šioje programoje randame JPG.webp vaizdo skiriamąją gebą, skaitantį šias antraštes, nenaudojant jokios išorinės bibliotekos.

JPEG.webp atvaizdo raiškos šaltinio kodas

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

Rezultatas

 Vaizdo skiriamoji geba yra 280 x 280 

Šioje programoje atvertėme vaizdą dvejetainiu režimu. Šiame režime ne tekstiniai failai turi būti atidaryti. Vaizdo aukštis yra 164-oje pozicijoje, o po to - vaizdo plotis. Abiejų ilgis yra 2 baitai.

Atminkite, kad tai galioja tik JPEG.webp failų mainų formato (JFIF) standartui. Jei jūsų vaizdas užkoduotas naudojant kitą standartą (pvz., EXIF), kodas neveiks.

2 baitus paverčiame skaičiumi, naudodami bitų keitimo operatorių <<. Galiausiai rodoma skiriamoji geba.

Įdomios straipsniai...