pubblicato Venerdì 25 Maggio del 2007 alle 18:55.

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. [wink]

È 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
Attenzione: gli script sono pubblicati SOLO a scopo dimostrativo (didattico) e ASSOLUTAMENTE SENZA GARANZIA: l'autore nega qualsiasi responsabilità di danni riscontrabili a seguito del loro uso (mancato funzionamento, errori ed eventuale perdita di dati, etc). Gli script sono pubblicati con la licenza d'uso GNU General Public License, peraltro ottenibile al seguente link GNU/GPL.

Ultimo aggiornamento 24 Ottobre 2008


powered by FreeFind
Il sito è una creazione di Maurizio... ed è pubblicato sotto una Licenza CC; esso non viene aggiornato
in maniera periodica, pertanto non può essere considerato un prodotto editoriale ai sensi della legge n. 62 del 7.03.2001.