Програма Python для пошуку розміру (роздільної здатності) зображення

Ви дізнаєтесь, як знайти роздільну здатність зображення у форматі jpeg.webp у цьому прикладі без використання зовнішніх бібліотек

Щоб зрозуміти цей приклад, ви повинні знати наступні теми програмування на Python:

  • Функції Python
  • Функції, визначені користувачем Python
  • Файл вводу-виводу Python

JPEG.webp (вимовляється як "сойка-кілочок") означає Спільну групу експертів з питань фотографії. Це один із найбільш широко застосовуваних методів стиснення для стиснення зображення.

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

Наприклад, заголовки 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 x 280 

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

Зверніть увагу, що це справедливо лише для стандарту JPEG.webp File Interchange Format Format (JFIF). Якщо ваше зображення кодується за допомогою іншого стандарту (наприклад, EXIF), код не працюватиме.

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

Цікаві статті...