Программа Python для определения размера (разрешения) изображения

Вы научитесь определять разрешение изображения jpeg.webp в этом примере без использования внешних библиотек.

Чтобы понять этот пример, вы должны знать следующие темы программирования Python:

  • Функции Python
  • Пользовательские функции Python
  • Ввод-вывод файла Python

JPEG.webp (произносится как «jay-peg») означает Joint Photographic Experts Group. Это один из наиболее широко используемых методов сжатия изображений.

Большинство форматов файлов имеют заголовки (несколько начальных байтов), которые содержат полезную информацию о файле.

Например, заголовки jpeg.webp содержат такую ​​информацию, как высота, ширина, количество цветов (оттенки серого или RGB) и т. Д. В этой программе мы находим разрешение изображения jpeg.webp, читающего эти заголовки, без использования какой-либо внешней библиотеки.

Исходный код разрешения поиска изображения 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") 

Вывод

 Разрешение изображения 280 х 280 

В этой программе мы открыли изображение в двоичном режиме. В этом режиме должны быть открыты нетекстовые файлы. Высота изображения находится на 164-й позиции, за которой следует ширина изображения. Оба имеют длину 2 байта.

Обратите внимание, что это верно только для стандарта формата обмена файлами JPEG.webp (JFIF). Если ваше изображение закодировано с использованием другого стандарта (например, EXIF), код не будет работать.

Мы конвертируем 2 байта в число с помощью оператора побитового сдвига <<. Наконец, отображается разрешение.

Интересные статьи...