Рад са сликама у Питхон-у

Рад са сликама у Питхон-у

ПИЛ је Питхон Имагинг Либрари која Питхон интерпретеру пружа могућности за уређивање слика. Развили су га Фредрик Лунд и неколико других сарадника. Пиллов је пријатељска ПИЛ виљушка и библиотека лака за коришћење коју су развили Алекс Кларк и други сарадници. Радићемо са јастуком.

Инсталација:

  • Линук: На линук терминалу откуцајте следеће:
     pip install Pillow  Инсталирање пип-а преко терминала:  
     sudo apt-get update   
    sudo apt-get install python-pip
  • Виндовс: Преузми одговарајући пакет јастука према вашој верзији Питхон-а. Обавезно преузмите у складу са верзијом Питхон-а коју имате.

Овде ћемо радити са Имаге Модуле који обезбеђује класу истог имена и пружа много функција за рад на нашим сликама. Да бисмо увезли Имаге модул, наш код би требало да почне следећим редом:

  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.   
  • Преузми величину слике : Инстанце класе Имаге које су креиране имају много атрибута, један од корисних атрибута је величина. 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   
    Неки други атрибути су: Имаге.видтх Имаге.хеигхт Имаге.формат Имаге.инфо итд.
  • Сачувајте промене на слици: Да бисмо сачували све промене које сте направили у датотеци слике, морамо да дамо путању као и формат слике. 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  ()   
    ротирање слике у питону Напомена: Постоји опциона заставица за проширење која је доступна као један од аргумента методе ротирања која, ако је постављена на тачно, проширује излазну слику да би била довољно велика да задржи потпуно ротирану слику. Као што се види у горњем исечку кода, користио сам релативну путању где се моја слика налази у истом директоријуму као и моја Питхон датотека кода, а апсолутна путања се такође може користити.
  • Опсецање слике: Имаге.цроп(бок) узима координате пиксела од 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  ()   
    изрезивање слике у Питхон-у
  • Промена величине слике: Имаге.ресизе(сизе)- Овде је величина дата као ширина и висина од 2 торке. 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  ()   
    промена величине слике у Питхон-у
  • Лепљење слике на другу слику: Други аргумент може бити 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
       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
        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
       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  ()   
    поделите слику у Питхон-у
  • тобитмап: Конвертовање слике у Кс11 битмап (формат бинарне слике обичног текста). Враћа стринг који садржи Кс11 битмап и може се користити само за слике у режиму 1, тј. црно-беле слике од 1 бита. из ПИЛ импорт Имаге 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
       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  ()   
    креирање сличице слике у Питхон-у
Креирај квиз