NConvert şi AutoIt


Despre NConvert am scris acum câteva luni aici. Despre AutoIt am avut mai multe articole. Aş vrea acum să vă prezint o combinată. De fapt un caz foarte, foarte, foarte particular, dar pe care fiecare îl poate generaliza… dacă are nevoie de aşa ceva. Concret. La Catholica.ro am imaginea asociată unei ştiri de lăţime 152 de pixeli – de fapt 150 şi o bordură neagră de un pixel. Azi veţi spune “de ce bordură neagră în imagine, când se poate adăuga cu CSS?” Eu vă răspund: Catholica.ro a fost lansat prin 2002 când eu unul nu foloseam prea mult CSS. Şi pentru că aşa am început, aşa trebuie să merg înainte. Apoi am o versiune mică, gen thumbnail, de 72×72 (de fapt 70×70 plus aceeaşi bordură neagră de un pixel).

imagine

Aproape zilnic trebuie să creez astfel de “seturi” de imagini, când public ştiri. Desigur, o parte mi-am automatizat-o prin Paint Shop Pro, dar m-am întrebat: de ce să lansez ditamai programul pentru o operaţiune aşa simplă? Din păcate IrfanView sau Paint.Net (alte două editoare ce le am local) nu suportă scripting (vedeţi partea a doua a acestui material). Dar am AutoIt, un prieten de nădejde! În plus NConvert face operaţiuni pe imagini fără nici o interfaţă grafică. Deci la lucru! Comanda pentru prima imagine e simplă:

RunWait("F:\Imagini\XnView\Nconvert\nconvert.exe -out jpeg -ratio -resize 150 0 -sharpen 30 -canvas #2 #2 center -quiet -clipboard -o " & $file1 & "","",@SW_HIDE)

Explicaţie: apelez programul nconvert, spunându-i să scoată un jpeg lat de 150 de pixeli (dacă am pus 0 la înălţime şi am cerut să se conserve proproţiile – ratio – atunci calculează el înălţimea), să facă mai clară imaginea (sharpen se cere de regulă după reducerea dimensiunii unei imagini), să îi pună o bordură de 1 pixeli peste tot (#2 înseamnă lăţimea mai mare cu 2 pixeli, dar cum pun centrat, un pixel vine în stânga, celălalt pixel în dreapta), folosind imaginea din clipboard dar salvând-o undeva unde am stabilit eu, în variabila $file1. Totul dintr-un singur pas!!! Pentru a doua imagine o altă comandă simplă:

RunWait("F:\Imagini\XnView\Nconvert\nconvert.exe -out jpeg -canvas 150 150 center -resize 70 70 -sharpen 30 -canvas 72 72 center -quiet -o " & $file2 & " " & $file1 & "","",@SW_HIDE)

Explicaţie: tot cu nconvert am pornit de la imaginea deja obţinută în pasul anterior, am decupat-o la 150×150 centrat, scalat-o la 70×70 şi adăugat o bordură de 1 pixel. Acestea sunt cele două comenzi pe care le dau în codul AutoIt, folosind nconvert. Acum codul AutoIt la mine face mult mai mult. Imaginile le salvez în directoare după prima literă. Dacă vreau să salvez imaginea cu titlul tigru, atunci ea va fi salvată în directorul “t” (pentru o grupare a imaginilor, că sunt mii). Cu AutoIt e din nou uşor totul, lucrând pe stringuri şi fişiere.

Desigur, acesta e un caz particular. Dacă însă cu o frecvenţă foarte mare faceţi aceeaşi paşi cu anumite imagini, vă recomand să vă gândiţi la combinarea puterii NConvert cu AutoIt. În plus eu am asociat scriptul cu o combinaţie din taste, aşa că ajunge să am în clipboard imaginea dorită după care cu o apăsare de taste am aproape instantaneu imaginile de mai sus generate. De la un proces (aproape) manual la unul 100% automatizat. Vedeţi în screencastul următor.

Şi acum să vedem ceva mai comun. Nu vreţi NConvert? Să zicem că vrem cu Paint.Net să automatizăm ceva. Un mic cod de ilustrare mai jos

If Not WinActive("[REGEXPTITLE:.Paint.NET]") Then WinActivate("[REGEXPTITLE:.Paint.NET]")
Send("^r")
Send("400")
Send("{ENTER}")
Sleep(500)
Send("!c")
Send("p")
Send("s")
Send("{ENTER}")
Send("5")
Send("{ENTER}")
Sleep(500)
Send("!a")
Send("g")
Send("255{TAB}170{TAB}170")
Send("{ENTER}")

Explicaţii: 1) activăm fereastra cu Paint.Net; 2) (ca şi cum am apăsa) combinaţia Ctrl+R; 3) (ca şi cum am) scrie 400; 4) Enter (tocmai am redimensionat imaginea, să aibă 400 pixeli lăţime); 5) aşteptăm puţin; 6) Alt+C de la meniul Effects; 7) P pentru Photo; 8.) S pentru Sharpen; 9) Enter; 10) scrie 5; 11) Enter (tocmai am aplicat Sharpen pe imagine, să fie mai clară); 12) aşteptăm puţin; 13) Alt+A pentru Adjustments; 14) g pentru Grayscale on Colored Paper; 15) scriem 255, tab, 170, tab, 170 – am completat valorile pentru efect; 16) Enter (tocmai am aplicat efectul). Desigur, putem continua cu Send("^s") pentru a salva imaginea. Vedeţi scriptul în acţiune mai jos.

Şi uite aşa, cu AutoIt puteţi automatiza procese inclusiv pe imagini. Îmi place NConvert pentru că nu are interfaţă grafică, dar se pot folosi şi editoare de imagini tradiţionale.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (2 evaluări, media: 5,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *