Qualche giorno fa', preso da un irrefrenabile immotivata fretta, ho creato al volo uno script che ruota di 90° verso destra o sinistra, oppure di 180°, le immagini. Nonostante ci siano già programmi che graficamente effettuano modifiche identiche, lo inserisco comunque nel blog. Magari a qualcuno può far comodo. ![]()
È un G-script in BASH, per maggiori informazioni leggi Nautilus-scripts.
#!/bin/bash
#
# AUTHOR: Maurizio di NuvoleSparse
#
# License: GNU General Public version 2 or any later version.
# This program comes with ABSOLUTELY NO WARRANTY; for details
# see the COPYING file or visit "http://www.gnu.org/licenses/gpl.html".
# This is free software, and you are welcome to redistribute it under
# certain conditions. See the GPL license for details.
#
# Dependence:
# zenity
# imagemagick
#
usa_printf(){
inizio=0
fine=1024
p=1
while [ $p != ultima ]; do
printf "${temp:inizio:fine}" |
zenity --text-info --title="gruota - \
parte $p" &
inizio=$(( inizio+1024 ))
fine_ipotetica=$(( inizio+fine ))
if [ ${#temp} -lt $fine_ipotetica ]; then
p="ultima"
printf "${temp:inizio:fine}" | zenity --text-info \
--title="gruota - parte $p"
break
fi
p=$(( p+1 ))
done
}
##main
### trucco per evitare l'ostacolo di un path errato
### quando si avvia uno Gscript dalla Scrivania
PERCORSO="`echo $NAUTILUS_SCRIPT_CURRENT_URI| sed "s&^file://&&"`"
[ -n "$PERCORSO" ] && cd "$PERCORSO"
if [ $# -eq 0 ]; then
zenity --title="gruota" --error --title="Attenzione"\
--text="Seleziona almeno un file."
exit 1
fi
ans=$(zenity --list --title="gruota" --text "Indica l'angolo di rotazione:"\
--radiolist --column "Selez."\
--column "Angolo" TRUE "90 dx" FALSE "90 sx" FALSE 180)
[ -z "$ans" ] && exit 1
case "$ans" in
"90 dx") angle="+90";;
"90 sx") angle="-90";;
180) angle="180";;
esac
while [ $# -gt 0 ]; do
convert -rotate "$angle" "$1" "$1" 2>>/tmp/gruota.log
shift
done
if [ -s "/tmp/gruota.log" ]; then
echo -e "Lo script e' terminato." >>/tmp/gruota.log
temp="$(cat "/tmp/gruota.log")"
if [ ${#temp} -gt 1024 ]; then
usa_printf
else
cat "/tmp/gruota.log" | zenity --title="Errore - gruota"\
--text-info
fi
rm -f /tmp/gruota.log || zenity --title="gruota" --error\
--title="Attenzione"\
--text="Non e' stato possibile rimuovere il file /tmp/gruota.log! :-("
else
zenity --title="gruota" --info --text="Lo script e' terminato."
fi
exit 0
Ultimo aggiornamento 24 Ottobre 2008