Dnes si názorne ukážeme, že Terminal zvláda aj triky s obrázkami, ktoré tak jednoducho neurobíte ani cez grafické rozhranie alebo v grafickom editore. Zrejme mi neveríte – a to som ešte ani nespomenul, že zvláda ich hromadnú úpravu rýchlejšie ako Automator.
- Konvertovanie do iného formátu
- Zmenšovanie
- Zväčšovanie
- Kritériá pevnej šírky/výšky (napr. pre online-shop katalógy)
- Rotácia
- Vyrezávanie
- A ďalšie pokročilejšie funkcie…
Ak pracujete s grafikou, napríklad veľa fotíte, možno vám občas príde vhod hromadná úprava fotiek. Alternatív je samozrejme mnoho, môžeme si zvoliť individuálnu úpravu každého obrázku a strácať hodiny času, alebo sa začnete bližšie zoznamovať s aplikáciou Automator. Pokročilejší skúsia AppleScript, a vynaliezavejší si stiahnu nejaký voľne šíriteľný program z internetu. Prečo sa však namáhať, keď všetko potrebné už máte nainštalované a čaká to na volanie vášho Shellu? Apple totiž do každej inštalácie Mac OS X 10.3 „Panther“ a novších pridáva zbraň hromadného upravovania s menom SIPS (Scriptable Image Processing System). Poďme si ukázať, ako ju použiť.
Možností je veľa, pre názornú ukážku som si vybral úpravu veľkosti a formátu obrázku, potom jeho zrkadlové obrátenie, orezanie a rotáciu. Poďme na to zľahka, najprv si vytvorte priečinok s obrázkami na pracovnej ploche, pomenujte ho napríklad „Fotky“ a vložte do neho niekoľko obrázkov, ideálne s vyšším rozlíšením, aspoň 800×600 pixelov, aby ste mohli postupovať podľa čísel, ktoré budú v tomto článku. Otvorte si Terminal (Applications/Utilities) a premiestnite sa do priečinku s vašimi obrázkami. Ak ste pozorne čítali predchádzajúce diely, viete že stačí napísať cd a ťahať (drag & drop) nad okno Terminalu priečinok, čím sa jeho adresa skopíruje do príkazového riadku. Pred samotnými úpravami by ale možno bolo dobré vedieť o obrázkoch trochu viac.
sips -g all adresa/lubovolneho/obrazku/v_priecinku/Fotky
Bude nasledovať pomerne obsiahly výpis, ktorý získate oveľa skôr než poviete „Photoshop“. Ak nechcete zbytočne veľa informácií a uspokojíte sa s jedným údajom, slovko all môžte nahradiť iným, napríklad format alebo profile. Kompletný slovník výrazov pre SIPS nájdete, ak napíšete:
sips -H
Ak sa však dožadujete výpisu všetkých funkcií, ktoré môžete na obrázok aplikovať, skúste radšej:
sips -h
Vieme už, čo sme potrebovali vedieť, poďme s našimi obrázkami vykonať nejakú akciu. Pokúsime sa unifikovať ich formát na BMP a pritom ich zmenšíme tak, aby bola ich šírka 400 pixelov, a výška sa automaticky prispôsobila podľa pomeru strán.
sips –resampleWidth 400 -s format bmp *
Ak by sme chceli urobiť opak, čiže zmenšovať výšku a nechať automaticky prispôsobiť šírku, zmenili by sme iba slovko „Width“ na „Height“. Ak nechceme meniť formát, vypustili by sme časť -s format bmp. Potom by príkaz vyzeral nasledovne:
sips –resampleHeight 400 *
Hviezdička reprezentuje názov súborov, ktoré chceme modifikovať. Práve hviezdička totiž v Terminále znamená neurčený počet neurčitých znakov, čiže všetky súbory v pracovnom priečinku. Ak by ste namiesto nej použili konkrétnu adresu na súbor, prešiel by modifikáciou iba on. SIPS je ale veľmi všestranný a nebráni sa ani logickejšie založeným operáciám. Povedzme napríklad, že chceme upraviť obrázok tak, aby ani jeden z jeho rozmerov nepresahoval stanovenú hranicu. Niečo podobné môže prísť vhod napríklad webdizajnérom, ktorí tvoria online katalóg, kde je pre obrázok produktu pevne vymedzené pole. Samozrejme produktov je aspoň milión a niečo podobné by ste nedokázali ani s väčšinou veľmi drahých programov. Preto ich ani nezapínajte a napíšte:
sips –resampleHeightWidthMax 300 -s format jpeg *
Po chvíli budú vaše obrázky zmenšené tak, aby mali väčší rozmer upravený na 300 pixelov a menší sa mu prispôsobil podľa pomeru strán. Dobre, máme naše súbory zmenšené a ich formát je ten jediný správny, ktorý požadujeme. Čo spravíme teraz? Ja navrhujem zrkadlové obrátenie všetkých obrázkov v priečinku.
sips –flip horizontal *
Následne sa všetky obrázky otočia tak, akoby ste ich videli v zrkadle. Samozrejme ich môžte otáčať aj vertikálne.
sips –flip vertical *
Na rad prichádza orezávanie. Povedzme, že chceme z našich obrázkov vyrezať útvar o rozmeroch 250×250 pixelov.
sips –cropToHeightWidth 250,250 250,250 *
Rotácia je ďaľšia príjemná schopnosť, vždy sa udáva v stupňoch a v smere chodu hodinových ručičiek.
sips –rotate 45 *
Za číslo 45 si pochopiteľne môžte dosadiť ľubovoľné iné. SIPS má v zásobe ešte mnoho iných a značne pokročilejších funkcií. Ich podrobný rozbor by ale zabral priveľa času, preto bude lepšie, ak sa sami naučíte tie, ktoré budete potrebovať. Použite dnes spomínaný príkaz sips -h, kde sa dozviete viac. Aby ste neboli smutní, prezradím vám ešte jeden užitočný tip. Zrejme ste si všimli, že všetky úpravy, ktoré sme vykonali sa aplikovali na pôvodné súbory. Ak však chcete zachovať originálne, môžte si nastaviť priečinok, kam sa bude výstup ukladať. Stačí ak za dnes spomínané príkazy napíšete ešte -out a doplníte adresu.
sips –rotate 45 * –out Adresa/vystupneho/priecinku
komentárov
Veľmi zaujímavé… Osobne používam na úpravu fotiek z príkazového riadku ImageMagick (http://www.imagemagick.org/script/index.php), pretoze o SIPS počujem prvý krát. Rozhodne to ale vyskúšam a porovnám. Vďaka za tip
Vesna skoda je ta ze tento clanok vysiel v ten isty den ko ten o iPhone 500k pretoze nanestastie asi upadne do zabudnutia.
Skoda maros ale dobra praca tieto funkcie bude mat Win v roku 2074
Well Done
na linuxe som pouzival program convert.
priklady:
zmenit velkost vsetkych obrazkov na 640×480 v aktualnom adresari:
for i in `ls -la | awk ‘{print $8}’`; do convert -resize 640×480 $i $i; done
otocit obrzok o 90 stupnov v smere hodinovych ruciciek:
convert -rotate 90 nazov_obrazku.jpg nazov_obrazku.jpg
atp…
convert program sa nachadza v baliku imagemagick, ktory sa da stiahnut z http://www.imagemagick.org/script/binary-releases.php#macosx
(binarka pre universal, nie ten z portov)
Super clanok.
Ked som naposledy potreboval zmensit asi 1000 obrazkov, pouzil som photoshop – jednak sam mi velmi zahrial PC (a to mam iba macbook-a) a este k tomu trvalo do hodne dlho. Teraz som skusil tie iste obrazky zmensit pomocou sips – uplna parada – bolo to za par sekund, a PC sa nestihol ano zahriat :)
Vdaka za tip :o)
Hmm :)