Python programma attēla izmēra (izšķirtspējas) atrašanai

Jūs mācīsities atrast JPG.webp attēla izšķirtspēju šajā piemērā, neizmantojot ārējās bibliotēkas

Lai saprastu šo piemēru, jums jābūt zināšanām par šādām Python programmēšanas tēmām:

  • Python funkcijas
  • Python lietotāja definētas funkcijas
  • Python faila I / O

JPEG.webp (izrunā "jay-peg") nozīmē Apvienoto fotogrāfiju ekspertu grupu. Tā ir viena no visbiežāk izmantotajām saspiešanas metodēm attēlu saspiešanai.

Lielākajai daļai failu formātu ir galvenes (sākotnēji daži baiti), kas satur noderīgu informāciju par failu.

Piemēram, JPEG.webp galvenes satur tādu informāciju kā augstums, platums, krāsu skaits (pelēktoņu vai RGB) utt. Šajā programmā mēs atrodam JPG.webp attēla izšķirtspēju, lasot šīs galvenes, neizmantojot ārēju bibliotēku.

JPEG.webp attēla atrašanas izšķirtspējas avota kods

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

Rezultāts

 Attēla izšķirtspēja ir 280 x 280 

Šajā programmā mēs atvērām attēlu binārā režīmā. Šajā režīmā failiem, kas nav teksts, jābūt atvērtiem. Attēla augstums ir 164. pozīcijā, kam seko attēla platums. Abi ir 2 baiti.

Ņemiet vērā, ka tas attiecas tikai uz JPEG.webp failu apmaiņas formāta (JFIF) standartu. Ja attēls tiek kodēts, izmantojot citu standartu (piemēram, EXIF), kods nedarbosies.

Mēs pārvēršam 2 baitus skaitļos, izmantojot bitu kustības operatoru <<. Visbeidzot, tiek parādīta izšķirtspēja.

Interesanti raksti...