W Slackware 9.0, 9.1 nie udało mi się uruchomić programu Ganim8 (do tworzenie animowanych gifów). Program ten bazuje na programie gifsicle i ungifsicle. Zastąpiłem więc go opracowanym przez siebie skryptem powłoki, wykorzystującym program Xdialog.
Na początek należy ściągnąć z serwisu
http://freshmeat.net program o nazwie
Xdialog i go skompilować, co przebiega bezproblemowo.
W drugiej fazie musimy pobrać ze strony domowej projektu
http://www.lcdf.org/gifsicle/ program
gifsicle oraz skompilować go. Przebiega to bez problemów.
Następnie musimy pobrać skrypt
Xgifsicle.tar.gz i rozpakować go do katalogu domowego. Musimy utworzyć w nim katalog
Xgifsicle, do którego będą kopiowane pliki gifów oraz katalog
tmp. Treść skryptu jest zamieszczona poniżej (linie są łamane tylko na stronie, a nie w skrypcie). W treści należy zmienić nazwę użytkownika
andrzej na właściwego:
#!/bin/sh
#set -x
a=0
b=/home/andrzej
c=0
d=0
e=0
f=0
while [ "$a" = "0" ]; do
FILE=`Xdialog --stdout --title "Wybieraj pliki i zatwierdzaj OK.\
Potem naciśnij CANCEL" --fselect $b/tmp 30 70`
case $? in
0)
cp $FILE $b/Xgifsicle;;
1)
DIALOG=Xdialog
$DIALOG --title "Podaj liczbę kolorów" \
--inputbox "Maksymalnie 256" 10 45 256 \
2> /tmp/inputbox.tmp.$$
c=$?
color=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$
DIALOG=Xdialog
$DIALOG --title "Podaj odstęp klatek" \
--inputbox "Cyfra 100 oznacza 1 sekundę" 10 45 10 \
2> /tmp/inputbox.tmp.$$
d=$?
delay=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$
DIALOG=Xdialog
$DIALOG --title "Podaj ilość powtórzeń" \
--inputbox "Podanie cyfry zero \
oznacza ciągłe odtwarzanie" 10 45 0 \
2> /tmp/inputbox.tmp.$$
e=$?
loop=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$
gifsicle -d$delay -l$loop -O -k$color \
$b/Xgifsicle/*.gif > $b/nowy.gif
DIALOG=Xdialog
$DIALOG --title "Tworzenie GIFa zakończone" \
--infobox "" 10 45 10000
DIALOG=Xdialog
$DIALOG --title "Zmiana rozmiaru GIFa" \
--inputbox "Jak nic nie wpiszesz to nowy GIF nie \
zostanie utworzony" 10 60 150x150 \
2> /tmp/inputbox.tmp.$$
f=$?
resize=`cat /tmp/inputbox.tmp.$$`
rm -f /tmp/inputbox.tmp.$$
gifsicle -l$loop --resize $resize $b/nowy.gif > \
$b/nowy_1.gif
DIALOG=Xdialog
$DIALOG --title "" \
--infobox "KONIEC" 0 0 3000
exit;;
255)
exit;;
esac
done
#Opracował Andrzej Sperczyński 06.12.2003r.
Tworzenie animacji polega na opracowaniu poszczególnych klatek w innych programach np.: w gimpie i na nadaniu im numeracji kolejnej z rozszerzeniem .gif oraz przekopiowaniu do katalogu ~/tmp. Po uruchomieniu programu okno wyboru plików jest ustawiane domyślnie na katalog ~/tmp, skąd należy wybierać pliki do animacji i zatwierdzać klawiszem enter. Po wybraniu interesujących nas plików klikamy na cancel i ustawiamy inne parametry animacji. Sam skrypt łączy te klatki w animację, ustala liczbę kolorów, optymalizuje plik wynikowy (ustawiłem domyślnie), ustala liczbę powtórzeń cyklów animacji, ustawia czas odstępu klatek oraz pozwala na zmianę rozmaiarów gotowej animacji. Plik wynikowy jest zapisywany w katalogu domowym jako nowy.gif, a plik o zmienionych wymiarach jako nowy_1.gif. Jeżeli w okienku zmiana rozmiaru nic nie wpiszemy, to plik nowy_1.gif będzie miał rozmiar zerowy, a plik główny nie ulegnie zmianie. Najlepiej pokażą to zrzuty ekranu:
Niekiedy dysponujemy gotową animacją gif, ale chcemy zmienić jej parametry. W tym celu czyścimy katalog Xgifsicle i uruchamiamy program. Znajdujemy nasz plik i akceptujemy klawiszem enter. Potem naciskamy cancel i przechodzimy do ustawień parametrów animacji. Ustawienia modyfikujemy dowolnie oprócz rozmiaru i liczby kolorów, które możemy tylko zmniejszać bez dodatkowych strat na jakości animacji.
A tak wygląda efekt końcowy animacji składającej się z 35 klatek, odstępu 0,1 sekundy, liczby powtórzeń nieokreślonej i ośmiu kolorów:
do góry