Python-ohjelma kuvan koon (tarkkuuden) löytämiseksi

Opit löytämään JPG.webp-kuvan tarkkuuden tässä esimerkissä käyttämättä ulkoisia kirjastoja

Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Python-ohjelmointiaiheista:

  • Python-toiminnot
  • Python-käyttäjän määrittelemät toiminnot
  • Python-tiedoston I / O

JPEG.webp (lausutaan "jay-peg") tarkoittaa Joint Photographic Experts Group. Se on yksi yleisimmin käytetyistä pakkaustekniikoista kuvan pakkaamiseen.

Suurimmalla osalla tiedostomuotoja on otsikot (muutama tavu), jotka sisältävät hyödyllistä tietoa tiedostosta.

Esimerkiksi JPEG.webp-otsikot sisältävät tietoja, kuten korkeus, leveys, värien lukumäärä (harmaasävy tai RGB) jne. Tässä ohjelmassa löydämme JPG.webp-kuvan tarkkuuden lukemalla nämä otsikot käyttämättä ulkoista kirjastoa.

Lähdekoodi löytää JPEG.webp-kuvan tarkkuuden

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

Tuotos

 Kuvan resoluutio on 280 x 280 

Tässä ohjelmassa avasimme kuvan binaaritilassa. Muiden kuin tekstitiedostojen on oltava auki tässä tilassa. Kuvan korkeus on 164. kohdassa, jota seuraa kuvan leveys. Molemmat ovat 2 tavua pitkiä.

Huomaa, että tämä pätee vain JPEG.webp File Interchange Format (JFIF) -standardiin. Jos kuvasi koodataan muilla standardeilla (kuten EXIF), koodi ei toimi.

Muunamme 2 tavua luvuksi käyttämällä bittiä siirtävää operaattoria <<. Lopuksi näyttöön tulee tarkkuus.

Mielenkiintoisia artikkeleita...