Programa Python para encontrar o tamanho (resolução) de uma imagem

Você aprenderá a encontrar a resolução de uma imagem jpeg.webp neste exemplo sem usar bibliotecas externas

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Python:

  • Funções Python
  • Funções Python definidas pelo usuário
  • E / S de arquivo Python

JPEG.webp (pronuncia-se "jay-peg") significa Joint Photographic Experts Group. É uma das técnicas de compressão mais amplamente utilizadas para compressão de imagens.

A maioria dos formatos de arquivo tem cabeçalhos (alguns bytes iniciais) que contêm informações úteis sobre o arquivo.

Por exemplo, cabeçalhos jpeg.webp contêm informações como altura, largura, número de cores (tons de cinza ou RGB) etc. Neste programa, encontramos a resolução de uma imagem jpeg.webp lendo esses cabeçalhos, sem usar nenhuma biblioteca externa.

Código-fonte para encontrar resolução de imagem 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") 

Resultado

 A resolução da imagem é 280 x 280 

Neste programa, abrimos a imagem em modo binário. Os arquivos não-texto devem ser abertos neste modo. A altura da imagem está na 164ª posição seguida pela largura da imagem. Ambos têm 2 bytes de comprimento.

Observe que isso é verdadeiro apenas para o padrão JPEG.webp File Interchange Format (JFIF). Se sua imagem for codificada usando outro padrão (como EXIF), o código não funcionará.

Convertemos os 2 bytes em um número usando o operador de deslocamento bit a bit <<. Finalmente, a resolução é exibida.

Artigos interessantes...