Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Autor Téma: Zpracování obrázků do galerie (při dalším spuštění skriptu to maže obrázky:-()  (Přečteno 2981 krát)

mk33

  • Člen
  • **
  • Příspěvků: 300
    • Zobrazit profil
Mám takovouhle představu. Ve složce s obrázky je dvouúrovňová adresářová struktura představující typ a model, ve složce model jsou pak jednotlivé obrázky. Potřebuju přejmenovat všechny *.jpg na 1.jpg, 2.jpg, ... . Dále v poslední této složce, kde se přejmenovávájí soubory vytvořit složku, do který se vygenerují náhledy. Uvíz sem na tom, že když skript pustím náhodou dvakrát za sebou tak smaže část obrázků a čísluje 1.jpg, 11.jpg, 12.jpg, ... , myslel jsem že je pouze znova přejmenuje (potřebuju i přidávat obrázky). Tady je dyžtak vše potřebný pro toho kdo mi chce pomoct www.mk33.ic.cz/obrazky-kraviny/soubory.zip

Kód: [Vybrat]
#!/bin/bash


#funkce
vypisAdresare()
{
for I in *;
do
if test -d "$I"
then echo "$I"
cd "$I"
zpracujObrazky
cd ..
fi
done
}

zpracujObrazky(){
ls | cat -n
for I in *;
do
if test -d "$I"
then #echo "$I"
cd "$I"
poradi=1

#přejmenování obrázků a vytvoření náhledů

#
#... proč tohle nejde???
#
test –d nahledy || mkdir nahledy


for i in *.[Jj][Pp][Gg];
do
#
#proč to maže při druhým spuštění soubory????
#
mv "$i" "$poradi.jpg"
poradi=$((poradi+1))
#convert co -resize 120x90 -quality 80 kam
done
cd ..
fi
done
}


echo "------------------------------------------------------------------------"
vypisAdresare;
echo "------------------------------------------------------------------------"


Tak jsem nějak pokročil. Do každého koncového adresáře ukládám soubor s číslem následujícího souboru. Hodnotu načtu a přesunu obrázek do složky /obrazky. Večír to náhazet ještě do cyklu ať to vezme všechny adresáře.

Kód: [Vybrat]
#!/bin/bash

pocet=`cat "pocet.txt"`
mkdir "obrazky" 2> /dev/null
mkdir "nahledy" 2> /dev/null

for i in *.[Jj][Pp][Gg];
do

if [ "$i" == "*.[Jj][Pp][Gg]" ]; then
  echo "adresar neobsahuje obrazky"
else
convert "$i" -resize 120x90 -quality 80 "nahledy/$pocet.jpg" 2> /dev/null
mv "$i" "obrazky/$pocet.jpg" 2> /dev/null
pocet=$((pocet+1))
fi
done

echo $pocet > "pocet.txt"
« Poslední změna: 18 Srpen 2008, 12:03:26 od mk33 »
začínám tak trpělivost a pevné nervy :-) since  21. Listopad 2006
-------------------------------------------------------------------------
|Aopen MX4SGI-4DN2|P4 2,8GHz HT|2x512MB RAM|ATI 9550|Linux Mint 9 Isadora|  |Asus P4B533|P4 1,8GHz|3x256 MB RAM|ATI 7500|Ubuntu 7.04|  |IBM Thinkpad T40p|Ubuntu 9.04|  |Lenovo Thinkpad T61|Linux Mint 9 Isadora|Lenovo Thinkpad T410|Linux Mint 13