Робота з зображеннями в Python

Робота з зображеннями в Python

PIL — це бібліотека зображень Python, яка надає інтерпретатору Python можливості редагування зображень. Він був розроблений Фредріком Лундом та кількома іншими учасниками. Pillow — це зручна вилка PIL і проста у використанні бібліотека, розроблена Алексом Кларком та іншими учасниками. Ми будемо працювати з Pillow.

Установка:

  • Linux: У терміналі Linux введіть наступне:
     pip install Pillow  Встановлення pip через термінал:  
     sudo apt-get update   
    sudo apt-get install python-pip
  • Windows: Завантажити відповідний пакет Pillow відповідно до вашої версії python. Обов’язково завантажуйте відповідно до вашої версії python.

Тут ми працюватимемо з модулем Image, який надає однойменний клас і надає багато функцій для роботи з нашими зображеннями. Щоб імпортувати модуль Image, наш код має починатися з такого рядка:

  from PIL import Image  

Операції з зображеннями:

  • Відкрийте певне зображення зі шляху: Python
       #img = Image.open(path)    # On successful execution of this statement   # an object of Image type is returned and stored in img variable)   try  :   img   =   Image  .  open  (  path  )   except   IOError  :   pass   # Use the above statement within try block as it can    # raise an IOError if file cannot be found    # or image cannot be opened.   
  • Отримати розмір зображення : екземпляри класу Image, які створюються, мають багато атрибутів, одним із корисних атрибутів якого є розмір. Python
       from   PIL   import   Image   filename   =   'image.webp'   with   Image  .  open  (  filename  )   as   image  :   width     height   =   image  .  size   #Image.size gives a 2-tuple and the width height can be obtained   
    Деякі інші атрибути: Image.width Image.height Image.format Image.info тощо.
  • Зберегти зміни в зображенні: Щоб зберегти будь-які зміни, які ви внесли у файл зображення, нам потрібно вказати шлях і формат зображення. Python
       img  .  save  (  path     format  )   # format is optional if no format is specified    #it is determined from the filename extension   
  • Обертання зображення: Для обертання зображення потрібен кут як параметр. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #Angle given   img   =   img  .  rotate  (  180  )   #Saved in the same relative location   img  .  save  (  'rotated_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    обертання зображення в Python Примітка. Існує необов’язковий прапор розширення, доступний як один із аргументів методу повороту, який, якщо встановлено значення true, розширює вихідне зображення, щоб воно було достатньо великим, щоб умістити повне повернуте зображення. Як видно у наведеному вище фрагменті коду, я використав відносний шлях, де моє зображення розташоване в тому самому каталозі, що й мій файл коду python, також можна використовувати абсолютний шлях.
  • Обрізання зображення: Image.crop(box) приймає 4-кортежну координату пікселя (лівий верхній правий нижній) і повертає прямокутну область із використаного зображення. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   width     height   =   img  .  size   area   =   (  0     0     width  /  2     height  /  2  )   img   =   img  .  crop  (  area  )   #Saved in the same relative location   img  .  save  (  'cropped_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    кадрування зображення в Python
  • Зміна розміру зображення: Image.resize(size) – тут розмір надається як ширина та висота з двох кортежів. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   width     height   =   img  .  size   img   =   img  .  resize  ((  width  /  2     height  /  2  ))   #Saved in the same relative location   img  .  save  (  'resized_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    зміна розміру зображення в Python
  • Вставлення зображення на інше зображення: Другим аргументом може бути 2-кортеж (вказує верхній лівий кут) або 4-кортеж (лівий верхній правий нижній) — у цьому випадку розмір вставленого зображення має відповідати розміру цієї області поля або Немає, що еквівалентно (0 0). Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   #Image on which we want to paste   img   =   Image  .  open  (  'picture.webp'  )   #Relative Path   #Image which we want to paste   img2   =   Image  .  open  (  'picture2.webp'  )   img  .  paste  (  img2     (  50     50  ))   #Saved in the same relative location   img  .  save  (  'pasted_picture.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   ##An additional argument for an optional image mask image is also available.   
    вставлення зображення на інше в Python
  • Отримання гістограми зображення: Це поверне гістограму зображення, оскільки список пікселів налічує по одному для кожного пікселя зображення. (Гістограма зображення — це графічне представлення тонального розподілу в цифровому зображенні. Вона містить усі значення яскравості, що містяться на зображенні. Вона відображає кількість пікселів для кожного значення яскравості. Це допомагає виконувати налаштування експозиції.) з PIL import Image Python
       def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #Getting histogram of image   print   img  .  histogram  ()   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    отримання-гістограми-зображення-в-копії-python


  • Транспонування зображення: Ця функція дає нам дзеркальне відображення зображення Python
        from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #transposing image    transposed_img   =   img  .  transpose  (  Image  .  FLIP_LEFT_RIGHT  )   #Save transposed image   transposed_img  .  save  (  'transposed.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    транспонування зображення в python
  • Розділити зображення на окремі смуги: Розділення зображення в режимі RGB створює три нові зображення, кожне з яких містить копію оригінальних окремих смуг. Python
       from   PIL   import   Image   def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #splitting the image   print   img  .  split  ()   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    розділити зображення на python
  • tobitmap: Перетворення зображення на растрове зображення X11 (формат бінарного зображення звичайного тексту). Він повертає рядок, що містить растрове зображення X11. Його можна використовувати лише для зображень у режимі 1, тобто чорно-білих зображень розміром 1 біт пікселя. з PIL імпортувати зображення Python
       def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   print   img  .  mode   #converting image to bitmap   print   img  .  tobitmap  ()   print   type  (  img  .  tobitmap  ())   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    конвертація зображення в растрове зображення в Python перетворення зображення на bitmao на python
  • Створення мініатюри: Цей метод створює мініатюру відкритого зображення. Він не повертає новий об’єкт зображення, а вносить зміни на місці до самого відкритого об’єкта зображення. Якщо ви не бажаєте змінювати оригінальний об’єкт зображення, створіть копію, а потім застосуйте цей метод. Цей метод також оцінює доцільність збереження співвідношення сторін зображення відповідно до переданого розміру. з PIL імпортувати зображення Python
       def   main  ():   try  :   #Relative Path   img   =   Image  .  open  (  'picture.webp'  )   #In-place modification   img  .  thumbnail  ((  200     200  ))   img  .  save  (  'thumb.webp'  )   except   IOError  :   pass   if   __name__   ==   '__main__'  :   main  ()   
    створення мініатюри зображення в Python
Створіть вікторину

Кращі Статті

Категорія