batch resize ImageMagicuga käsureal

Algajatele mõeldud foorum. Siia võib teha kõik Linuxiga seotud teemad, mida mujale ei oska panna

Moderaator: Moderaatorid

Vasta
Kasutaja avatar
daddo
Pingviini kasutaja
Pingviini kasutaja
Postitusi: 98
Liitunud: 19.07.2005, 03:00

batch resize ImageMagicuga käsureal

Postitus Postitas daddo »

Ajendatult lehelt http://cubicledenizen.blogspot.com/2008 ... mment-form ammutatud informatsioonist tekkis küsimus, et kuidas näeks kõnealune kood

Kood: Vali kõik

josh@phoenix:$ for file in *.jpg
> do
> convert -resize 200 "$file" sm_"$file"
> done
josh@phoenix:$

[or putting that all together:]

for file in *.jpg; do convert -resize 210 "$file" sm_"$file"; done
välja siis, kui tahta, et see loeks TIF faile ja muudetud suurusega failid kirjutaks JPG faili? Kui ma esimeses reas vaid muudan ära TIFiks, siis saab ka thumbnailid tiffidena... Ehk ImageMagic pidi vormingu tuvastama sihtfaili laiendist ja see antud hetkel lastakse julmalt allika laiendist...

Samuti huvitaks, et saaks kuidagi eraldatud failide nimedest (a la IMG_1111.JPG) neljakohaline number, et seda eraldi muutujana sihtfaili nimes kasutada. Eelolev kood teeb hetkel sm_IMG_1111.JPG nimelise faili, aga sooviks hoopis kujul kohandatud_tekst_1111.JPG.
Kasutaja avatar
obundra
Vana Pingviin
Vana Pingviin
Postitusi: 1213
Liitunud: 04.08.2005, 03:00

Postitus Postitas obundra »

TIF failist väikseid jpg-sid koos nimemuutusega, kus "IMG" asendatakse sõnaga "kohandatud_tekst", saab umbes nii:

Kood: Vali kõik

for file in *.TIF; do mogrify -resize 200 -format jpg "$file";rename 's/IMG/kohandatud_tekst/' *.jpg; done
ja sinu skriptiga konverditud sm_IMG_1111.jpg faili nime muutmine kohandatud_tekst_1111.jpg kujule käib umbes nii:

Kood: Vali kõik

rename 's/sm_IMG/kohandatud_tekst/' *.jpg
abiks http://www.imagemagick.org/script/comma ... essing.php ja http://www.debian-administration.org/articles/150
Kasutaja avatar
daddo
Pingviini kasutaja
Pingviini kasutaja
Postitusi: 98
Liitunud: 19.07.2005, 03:00

Postitus Postitas daddo »

Tänu sinu antud viidetele sain esimese poole lahenduseks järgneva:

Kood: Vali kõik

for file in *.TIF; do convert -resize 1200x1200 "$file" /media/test/pisipildid/"${file/TIF/jpg}"; done
Mis teeb TIF failidest küll soovitud suurusega JPG thumbnailid, kuid dubleeritult kuna teadaolevalt on TIF faili sees mingi väike eelvaate kaader ka sees. Seega tulemuseks failid kujul:

IMG_xxxx-0.jpg
IMG_xxxx-1.jpg
IMG_yyyy-0.jpg
IMG_yyyy-1.jpg

Seega noka sain lahti, aga saba jäi rohkem kinni...

Mis puutub ümbernimetamist, siis see on võimalus, aga hea meelega sooviks saada targemaks ja osata failinimest (mis IMG_xxxx.JPG puhul näiteks on alati sama pikk) lugeda sümbolid 5-8 eraldi muutujasse... ja siis sihtfail defineerida siis juba kas mitme muutuja või muutuja + suvalise stringi abil.
Vasta