Program Python pentru a găsi dimensiunea (rezoluția) unei imagini

Veți învăța să găsiți rezoluția unei imagini jpeg.webp în acest exemplu, fără a utiliza biblioteci externe

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele următoarelor subiecte de programare Python:

  • Funcții Python
  • Funcții Python definite de utilizator
  • I / O fișier Python

JPEG.webp (pronunțat "jay-peg") înseamnă Joint Photographic Experts Group. Este una dintre cele mai utilizate tehnici de compresie pentru compresia imaginii.

Majoritatea formatelor de fișiere au anteturi (inițiale câțiva octeți) care conțin informații utile despre fișier.

De exemplu, anteturile jpeg.webp conțin informații precum înălțimea, lățimea, numărul de culori (în tonuri de gri sau RGB) etc. În acest program, găsim rezoluția unei imagini jpeg.webp care citește aceste anteturi, fără a utiliza nicio bibliotecă externă.

Codul sursă de rezoluție de căutare a imaginii JPEG.webp

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

Ieșire

 Rezoluția imaginii este de 280 x 280 

În acest program, am deschis imaginea în modul binar. Fișierele non-text trebuie să fie deschise în acest mod. Înălțimea imaginii este la poziția 164, urmată de lățimea imaginii. Ambele au o lungime de 2 octeți.

Rețineți că acest lucru este valabil numai pentru standardul JPF File Interchange Format (JFIF). Dacă imaginea dvs. este codificată utilizând alte standarde (cum ar fi EXIF), codul nu va funcționa.

Transformăm cei 2 octeți într-un număr folosind operatorul de deplasare bitwise <<. În cele din urmă, rezoluția este afișată.

Articole interesante...