Deşi e destul de dificil pentru designer sau fotograf să-şi închipuie că imaginile pot fi redactate în mod neinteractiv, fără a vedea rezultatul lucrului în timp real, totuşi acest lucru e posibil şi chiar recomandabil de multe ori. În cele ce urmează, vom prezenta câteva mici trucuri de utilizare a setului de programe ImageMagick, care permit automatizarea unor operaţii de rutină.
De cele mai multe ori, aparatul de fotografiat salvează imaginile în mod automat în format JPEG cu densitatea imaginii de 72dpi, în spaţiul de culori RGB. Problema e că machetatorul are nevoie de fotografii în format TIFF, cu rezoluţia 300dpi şi în spaţiul de culori CMYK (dacă ziarul e color) sau Grayscale (dacă e alb-negru). Pe lângă toate astea, mărimea fizică a imaginii foarte rar depăşeşte anumite mărimi, deci imaginile care depăşesc aceste dimensiuni trebuiesc redimensionate, iar cele care sunt mai mici — nu. E foarte puţin probabil să fie publicate fotografii de lăţimea paginii de ziar, spre exemplu. În una din redacţiile în care am lucrat, fotografiile niciodată nu depăşeau lăţimea de 3 coloane, adică 135 mm.
Implicit voi presupune că lucraţi în Linux, dar cele expuse mai jos pot fi realizate şi în Windows, dacă veţi instala CygWin.
Pachetul de programe ImageMagick conţine mai multe utilite, dintre care noi vom folosi aici doar două: convert şi identify. Ele au o mulţime de parametri de pornire şi oferă posibilităţi aproape nemărginite de redactare, despre care puteţi citi în manualul acestui pachet. În Linux acesta poate fi deschis cu ajutorul comenzii man convert, iar utilizatorii Windows îl pot găsi pe pagina http://www.imagemagick.org/script/command-line-tools.php
Vom face un script, care va analiza imaginile din directoriul curent şi le va redacta în conformitate cu cerinţele noastre (păstrând şi originalul, evindent).
Pentru început să ne clarificăm cum redactăm o singură imagine.
convert -color GRAY -density 300 input.jpg output.jpg
convert output.jpg output.tiff
rm output.jpg
Comanda convert a fost pornită cu mai mulţi parametri, pe care îi explicăm mai jos:
• color: permite schimbarea spaţiului de culori a imaginii. În loc de GRAY aici puteţi pune şi CMYK, dacă aveţi nevoie de o imagine color;
• density: permite schimbarea densităţii imaginii. Noi aici alegem 300dpi, pentru că e un standard pentru poligrafie;
A doua invocare a comenzii convert a avut ca scop schimbarea formatului din JPEG în TIFF (Lista formatelor susţinute o puteţi găsi aici: http://ru.wikipedia.org/wiki/ImageMagick). Pentru acest lucru e suficient să indicăm extensia fişierului de ieşire, iar programul va face restul în mod automat.
A treia comandă şterge fişierul temporar output.jpg.
Acum trebuie să vedem dacă imaginea are nevoie de redimensionare sau nu. Dacă lăţimea fotografiei e mai mare de 1594px (135 mm la rezoluţia de 300dpi), atunci redimensionăm, dacă nu — nu. Deci, va fi necesar să aflăm dimensiunile iniţiale ale fotografiei, lucru pe care ne va ajuta să-l facem comanda identify.
nixon@localhost ~ $ identify chisinau.jpg
chisinau.jpg JPEG 1135 x726 1135 x726+0+0 8-b i t DirectClass 598KiB 0.000u 0:00.000
Din informaţia primită, noi avem nevoie de cifrele 1135x726, iar dacă mai exact doar de cifra 1135, care reprezintă lăţimea imaginii în pixeli. Acum rămâne să explicăm scriptului cum să-şi dea seama că trebuie să ţină cont de cifra aceasta. Vom folosi în acest scop comanda standard cut din sistemle UNIX-like (la care se referă şi Linux).
nixon@localhost ~ $ identify chisinau.jpg | cut -d ' ' -f3 | cut -d ' x ' -f1
1135
De fapt, identify oferă mult mai multă infromaţie dacă este pornită în felul următor: identify -verbose.
Următorul pas este punerea condiţiei pentru redimensionare şi aplicarea acestei proceduri pentru toate imaginile din directoriul curent. Deci vom crea fişierul /bin/imgred.sh şi vom scrie în el următorul script:
#!/bin/bash
#Stabilim cateva variabile, valorile carora le veti putea schimba in functie
#de realitatile din redactia Dvs.
#lmax - latimea maxima admisa pentru imagini in pixeli
lmax=1594
#dens - densitatea imaginilor in dpi
dens=300
#cream un direcoriu temporar, in care vom lucra cu fisierele.
#La sfarsitul executarii scriptului acesta va fi lichidat
mkdir tmp
#Pornim procesul de iteratie, care va aplica scriptul pe rand
#pentru toate fisierele JPEG din directoriul curent
for i in *.jpg
do
#l - latimea imaginii initiale in pixeli
l=`identify "$i" |cut -d ' ' -f3 |cut -d 'x' -f1`
#punem conditia de comparatie a variabilelor l si lmax
if [l -lt lmax]
then
convert -colorspace GRAY -density $dens "$i" tmp/"$i"
else
convert -colorspace GRAY -resize $lmax -density $dens "$i" tmp/"$i"
fi
convert tmp/"$i" "$i".tif
done
rm -fR tmp/
Literatură la temă
1. Manualul oficial al pachetului de programe ImageMagick.
http://www.imagemagick.org/
2. ImageMagick — redactor de imagini pentru consolă. Un articol despre ImageMagick de pe blog-ul lui Mihail Konnik.
http://mydebianblog.blogspot.com/2007/07/imagemagick.html
3. Pagina web a lui NIXon aka Viorel Roman, dedicată automatizării lucrului în redacţie.
http://nixon.legco.md/
Abonați-vă la:
Postare comentarii (Atom)
Niciun comentariu:
Trimiteți un comentariu