Terminal pogryzł człowieka: imgp

Kiedy zaczynamy opowiadać znajomym o obróbce zdjęć w terminalu narażamy się na pobłażliwe przytakiwanie. W głębi duszy każdy normalny użytkownik ma już gotową odpowiedź – „edytowanie zdjęć w trybie testowym, ach ci biedni linuksiarze”. Przelotne zaciekawienie pojawia się, gdy wspominamy o wymiarowaniu w kilka sekund zbioru 1000 fotografii za pomocą jednego polecenia. I tylko nielicznych na tyle wciągnie ten temat, że odszukają stosunkowo mało znane albo obdarzone nielichą inteligencją narzędzie imgp.

Ten niewielki program to tekstowe narzędzie do obracania i wymiarowania zdjęć w formacie jpeg oraz png. To oczywiście nie brzmi przełomowo. Ale jeżeli weźmiemy pod uwagę ciekawe parametry jakimi można sterować procesem przetwarzania zdjęć, szybkością pracy oraz uniwersalnym charakterem imgp, to można się tym projektem zachwycić.

Czy masowa zmiana wymiarów zdjęć może się nam do czegoś przydać? Wystarczy przytoczyć popularny scenariusz udostępniania zdjęć znajomym lub wrzucania na konkretny serwis społecznościowy. Zamiast przepychać przez łącze 10MB – 20MB danych zdjęcia w rozdzielczości 4xxx x 3xxx, to za pomocą imgp raz dwa utworzymy prostsze do propagowania mniejsze pliki graficzne o mniejszej rozdzielczości. Co więcej, program nie obrzuci nas inwektywami jeżeli zechcemy zachować dane EXIF, przetwarzać pliki tylko powyżej jakieś objętości, robić powyższe rekursywnie, z uwzględnieniem plików ukrytych, itp. Bardzo przydatną funkcją jest adaptatywna zmiana wymiarów zdjęcia, tzn. z automatycznym doborem poziomu lub pionu jako referencyjnego parametru od której jest obliczana wartość drugiego boku. Zmiana png na jpeg? Nie ma sprawy. Optymalizacja wynikowego obrazu? To też nie stanowi problemu. Obroty według podanego kąta? Imgp z łatwością sprosta większości z naszych wymagań. Możemy nawet wymusić powiększanie mniejszych obrazów.

Owszem, może nam zabraknąć obsługi większej ilości formatów lub aplikowania innych filtrów graficznych. Niemniej czy obróbka 8823 zdjęć zajmujących 4.5GB w 8 minut nie działa na wyobraźnię? Po zmiana rozdzielczości do 1360×1000 archiwum kurczy się do 897MB co stanowi zauważalną oszczędność (o ile w taki sposób planujemy optymalizować swój podglądowy katalog zdjęć).

Lista parametrów którymi można nakarmić imgp jest stosunkowo prosta:

usage: imgp [OPTIONS] [PATH [PATH ...]]

Resize, rotate JPEG and PNG images.

positional arguments:
  PATH                  source file or dir [default: current dir]

optional arguments:
  -h, --help            show this help message and exit
  -x res, --res res     output resolution in HxV or percentage
  -o deg, --rotate deg  rotate clockwise by angle (in degrees)
  -a, --adapt           adapt to resolution by orientation [default: off]
  -c, --convert         convert PNG to JPG format [default: off]
  -d, --dot             include hidden files (on Linux) [default: off]
  -e, --eraseexif       erase exif metadata [default: off]
  -f, --force           force to exact specified resolution [default: off]
  -i, --includeimgp     re-process _IMGP files. * RISKY: refer to docs
  -k, --keep            skip (but convert, if opted) images with matching
                        specified hres or vres or --res=100 [default: off]
  -n, --enlarge         enlarge smaller images [default: off]
  -p, --optimize        optimize the output images [default: off]
  -q, --quiet           operate silently [default: verbose]
  -r, --recursive       process directories recursively [default: off]
                        symbolic links to directories are ignored
  -s byte, --size byte  minimum size to process an image [default: 1024]
  -w, --overwrite       overwrite source images [default: off]
  -z, --debug           enable debug logs [default: off]

W przypadku Ubuntu 16.04/17.04 i Minta 18.xx należy wykorzystać odpowiednie PPA aby przetestować ten program:

sudo add-apt-repository ppa:twodopeshaggy/jarun
sudo apt-get update
sudo apt-get install imgp

W przypadku Manjaro i Arch Linuksa korzystamy z AUR:

yaourt -S imgp 

4 komentarze

  1. Mimo wszystko, przecież można to samo osiągnąć programem z GUI, jak IrfanView (nie bawiłem się jak dotychczas w takie rzeczy pod Linuksem, to nie znam zamienników). Różnica jest tylko taka, że można tego dokonać prościej, bez sprawdzania angielskiej pomocy, cały interfejs jest po polsku i przejrzysty. Zna ktoś jakieś dobre (zbliżone pod względem możliwości) alternatywy linuksowe dla Irfana?

  2. Tyle, że… irfanview jest windowsowy: http://www.irfanview.com/
    Tak, są narzędzia alternatywne w linuksie, ale ten cykl opowieści salvadhora ma chyba pokazać potęgę narzędzi konsolowych. Nie każdy może chcieć z tego korzystać i pewnie nie będzie. Jednak niekiedy zdarza się potrzeba skorzystania z czegoś takiego, a żadnego GUI nie ma pod ręką, bo np. nie ma sesji Xów.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Post comment

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.