Python-programma om de grootte (resolutie) van een afbeelding te vinden

U leert in dit voorbeeld de resolutie van een jpeg.webp-afbeelding te vinden zonder externe bibliotheken te gebruiken

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende programmeeronderwerpen in Python:

  • Python-functies
  • Python door de gebruiker gedefinieerde functies
  • Python-bestand I / O

JPEG.webp (uitgesproken als "jay-peg") staat voor Joint Photographic Experts Group. Het is een van de meest gebruikte compressietechnieken voor beeldcompressie.

De meeste bestandsindelingen hebben headers (eerste paar bytes) die nuttige informatie over het bestand bevatten.

Bijvoorbeeld, jpeg.webp headers bevatten informatie zoals hoogte, breedte, aantal kleuren (grijswaarden of RGB) etc. In dit programma vinden we de resolutie van een jpeg.webp afbeelding die deze headers leest, zonder gebruik te maken van een externe bibliotheek.

Broncode van zoekresolutie van JPEG.webp-afbeelding

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

Uitvoer

 De resolutie van de afbeelding is 280 x 280 

In dit programma hebben we de afbeelding in binaire modus geopend. In deze modus moeten niet-tekstbestanden zijn geopend. De hoogte van de afbeelding staat op de 164e positie, gevolgd door de breedte van de afbeelding. Beide zijn 2 bytes lang.

Merk op dat dit alleen geldt voor de JPEG.webp File Interchange Format (JFIF) -standaard. Als uw afbeelding is gecodeerd met een andere standaard (zoals EXIF), werkt de code niet.

We zetten de 2 bytes om in een getal met behulp van de bitsgewijze verschuivingsoperator <<. Ten slotte wordt de resolutie weergegeven.

Interessante artikelen...