Вы научитесь определять разрешение изображения 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 байта в число с помощью оператора побитового сдвига <<. Наконец, отображается разрешение.