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.