Autor |
Sõnum |
tarmok
Uus kasutaja
Liitunud: 08.02.2007
Postitused: 10
|
|
On kaks kataloogi, kummaski 2500 pilti. vaja oleks teha skript, mis võtaks ühe pildi ühest kataloogist, teise pildi teisest kataloogist ja paneks need ppildid kokku üheks pildiks. Ja niimoodi kõigi 2500 pildidga, nii et kokku tekiks 2500 uut pilti, kus kummagi kataloogi pildid on kõrvuti pandud.
Idee:
paremal/pilt00001.jpg
paremal/pilt00002.jpg
paremal/pilt00003.jpg
paremal/pilt00004.jpg
vasakul/pilt00001.jpg
vasakul/pilt00002.jpg
vasakul/pilt00003.jpg
vasakul/pilt00004.jpg
Tulemuseks oleks vaja saada:
kokku/vasakult_paremalt_00001.jpg
kokku/vasakult_paremalt_00002.jpg
kokku/vasakult_paremalt_00003.jpg
kokku/vasakult_paremalt_00003.jpg
Uus pilt on niisiis kaks korda laiem kui vanad, kuna uues on kaks pilti kõrvuti.
mogrify? imagemagick?
Vaatasin siia, aga päris ei saanud aru, mida mina tegema peaks:
Monteerimise näited
|
|
|
|
|
|
|
|
akbgf
Vana Pingviin
Liitunud: 07.10.2009
Postitused: 763
Asukoht: Tõravere
Distributsioon: OpenSUSE, Ubuntu
|
|
Imagemagicku montage teeb töö ära.
montage -tile 2x1 -geometry +1+1 paremal/pilt00001.jpg vasakul/pilt00001.jpg kokku/vasakul_paremal_00001.jpg
Tulemusfaili nime pead skriptis tekitama.
|
|
|
|
|
|
|
|
tarmok
Uus kasutaja
Liitunud: 08.02.2007
Postitused: 10
|
|
akbgf kirjutas: | Imagemagicku montage teeb töö ära.
montage -tile 2x1 -geometry +1+1 paremal/pilt00001.jpg vasakul/pilt00001.jpg kokku/vasakul_paremal_00001.jpg
Tulemusfaili nime pead skriptis tekitama. |
Jah, ilus, aga nii kokkukleebitavate piltide nimed kui ka tulemuseks saadava pildi nimi peaks olema kuidagi muutujatena antud. Sest mul on kummaski kataloogis ca 2500 pilti - ma ei viitsi ju 2500 korda käsku anda. Ja kahjuks olen niipalju rumal ka, et ei oska viisakalt bash'i skripti luua...
|
|
|
|
Viimati muutis tarmok 11.06.2013, 09:56; muudetud 1 kord
|
|
|
|
tarmok
Uus kasutaja
Liitunud: 08.02.2007
Postitused: 10
|
|
tarmok kirjutas: | akbgf kirjutas: | Imagemagicku montage teeb töö ära.
montage -tile 2x1 -geometry +1+1 paremal/pilt00001.jpg vasakul/pilt00001.jpg kokku/vasakul_paremal_00001.jpg
Tulemusfaili nime pead skriptis tekitama. |
Jah, ilus, aga nii kokkukleebitavate piltide nimed kui ka tulemuseks saadava pildi nimi peaks olema kuidagi muutujatena antud. Sest mul on kummaski kataloogis ca 2500 pilti - ma ei viitsi ju 2500 korda käsku anda. Ja kahjuks olen niipalju rumal ka, et ei oska viisakalt bash'i skripti luua... |
Proovisin stiilis
<--
montage -tile 2x1 -geometry +1+1 paremal/*.jpg vasakul/*.jpg kokku/kokku_%05d.jpg
-->
Aga see ei teinud seda, mis vaja. See käis läbi esmalt ühe kataloogi, siis teise kataloogi ja kleepis pildid kokku küll, kuid valesti. Mul oleks vaja, et kindalt oleks alati paaris erinevatest kataloogidest võetud täpselt samanimelised failid, mitte aga samast kataloogist võetud järjestikused failid.
|
|
|
|
|
|
|
|
tarmok
Uus kasutaja
Liitunud: 08.02.2007
Postitused: 10
|
|
tarmok kirjutas: |
Proovisin stiilis
<--
montage -tile 2x1 -geometry +1+1 paremal/*.jpg vasakul/*.jpg kokku/kokku_%05d.jpg
-->
Aga see ei teinud seda, mis vaja. See käis läbi esmalt ühe kataloogi, siis teise kataloogi ja kleepis pildid kokku küll, kuid valesti. Mul oleks vaja, et kindalt oleks alati paaris erinevatest kataloogidest võetud täpselt samanimelised failid, mitte aga samast kataloogist võetud järjestikused failid. |
Võtsin ette failide ümbernimetamise. Ühe kataloogi failidele lisain faili nime lõppu tähe "a". Seejärel kopeerisin failid kokku ühte kataloogi ja monteerisin nad siis kokku ühest kataloogist. Käsk, mille andisn, oli stiilis
<--
montage -tile 2x1 -geometry +1+1 paremal/*.jpg paremal/*.jpg kokku/kokku_%06d.jpg
-->
Aga selle skriptiga tekkis see häda, et ta kukkus lihtsalt kokku. Ilmselt seepärast, et masinal sai mälu otsa, enne kui töötlus lõpule jõudis. Kümne pildi korral tegi töö ilusti ära, samuti saja pildi korral. Aga kolmsada pilti selliselt luua oli juba liig: ühel hekel tuli ekraanile "Killed" - ja ühtki pilti ei tekkinud. Aga mul on pilte kokku 2x2500=5000
Ilmselt peaks saavutama, et skript töötaks kenasti tsüklis nii, et samm-sammult keebitaks kakshaaval pilte kokku ja et ei üritataks kõiki pilte mällu võtta ja siis kokku panema hakata...
|
|
|
|
|
|
|
|
Valdur55
Vana Pingviin
Vanus: 30
Liitunud: 02.06.2007
Postitused: 640
Asukoht: Tartu
Distributsioon: *buntu
|
|
Kood: |
#!/bin/bash
for q in `seq 0 2`;
do
for w in `seq 0 9`;
do
for e in `seq 0 9`;
do
for r in `seq 0 9`;
do
#Siia alla tuleb montage käsk
nr=0$q$w$e$r
echo $nr
montage -tile 2x1 -geometry +1+1 paremal/pilt$nr.jpg vasakul/pilt$nr.jpg kokku/vasakul_paremal_$nr.jpg
#Lõpetab programmi 2500 peal
if [ $nr -eq 02500 ]
then
exit
fi
done
done
done
done
|
See arvu kujunemine meenutab auto spidomeetrit. Kui viimane liigub 9 -> 0 peale, siis liigub järgmine ühe sammu võrra suuremaks.
Ma ei viitsi 00000 seisu kontrollima hakkata. 00000 korral montage viskab teade, et faili pilt00000.jpg ei leitud.
|
|
|
|
|
|
|
|
akbgf
Vana Pingviin
Liitunud: 07.10.2009
Postitused: 763
Asukoht: Tõravere
Distributsioon: OpenSUSE, Ubuntu
|
|
Proovi midagi niisugust, ehk hakkab tööle:
-------------
#!/bin/bash
for j in {1..9}
do
{montage -tile 2x1 -geometry +1+1 paremal/pilt0000$j.jpg vasakul/pilt0000$j.jpg kokku/pilt_0000$j.jpg
}
done
------
Kui nii saab esimesed 9 tehtud, siis
for j in {10..99}
do ..
teeb edasi ja
for j in {100..999} aitab edasi.
Võibolla pead täielikke aadresse kasutama
/usr/bin/montage
/home/???/paremal/pilt??? jne
|
|
|
|
|
|
|
|
tarmok
Uus kasutaja
Liitunud: 08.02.2007
Postitused: 10
|
|
Valdur55 kirjutas: | Kood: |
#!/bin/bash
for q in `seq 0 2`;
do
for w in `seq 0 9`;
do
for e in `seq 0 9`;
do
for r in `seq 0 9`;
do
#Siia alla tuleb montage käsk
nr=0$q$w$e$r
echo $nr
montage -tile 2x1 -geometry +1+1 paremal/pilt$nr.jpg vasakul/pilt$nr.jpg kokku/vasakul_paremal_$nr.jpg
#Lõpetab programmi 2500 peal
if [ $nr -eq 02500 ]
then
exit
fi
done
done
done
done
|
See arvu kujunemine meenutab auto spidomeetrit. Kui viimane liigub 9 -> 0 peale, siis liigub järgmine ühe sammu võrra suuremaks.
Ma ei viitsi 00000 seisu kontrollima hakkata. 00000 korral montage viskab teade, et faili pilt00000.jpg ei leitud. |
Super! See skript tegi töö täpselt nii nagu vaja ära. Ei mingit jama, samm-sammult käidi kataloogid läbi kuni 2455 failini.
Lihtsalt
Kood: |
if [ $nr -eq 02455 ]
|
rida tuli panna õigeks, et õiges kohas lõpetaks. Ja igatahes minul küll ei olnud probleemi ka pilt00000.jpg korral. Veatult ja õige asi. Seda skripti võib nüüd vastavalt vajadusele modifitseerida: kui numbrikohti on rohkem, siis tsükleid juurde kirjutada ja asi töötab. Suured tänud!
|
|
|
|
|
|
|
|
illukas
Vana Pingviin
Vanus: 44
Liitunud: 24.10.2006
Postitused: 2036
|
|
|
|
|