• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Photogallery-Creater

PatrickBaer

Well-Known Member
Themenstarter #1
Salve!

Ich suche ein Programm, das aus einr Liste/Verzeichnis eine Image-Gallerie mit index-Datei, Thumbnails und so weiter macht. Gibts da was in die Ports?
 

lme

FreeBSD Committer
#3
Wenn du kein php und andere unnötigen Abhängigkeiten haben willst, kann ich dir swiggle ans Herz legen.
Das braucht lediglich libjpeg.
 

dettus

Bicycle User
#6
das ist schon ein wenig aelter, aber ich benutze immer das hier:

Code:
#!/bin/bash

if [ ! -f bildliste.txt ]
then echo "reading contents"
        for I in `ls -1 --color=none $1`
                do
                        if [ $I ]
                                then if [ -z $ERSTER ]
                                        then ERSTER=$I
                                fi
                                LETZTER=$I
                                echo $I":Image "$I >>bildliste.txt
                        fi
                done
        echo $ERSTER":" >>bildliste.txt
fi
vi bildliste.txt
ERSTER=`head -n 1 bildliste.txt | awk -F: '{ print $1; }' -`
LETZTER=`tail -n 2 bildliste.txt | head -n 1 | awk -F: '{ print $1; }' -`
prev=$LETZTER
linnum=`cat bildliste.txt | wc -l`
echo "erster="$ERSTER
echo "letzter="$LETZTER
echo $linnum
num=0
echo "<html>" >index.html
echo "<!--- quick and dirty photoalbum (c)2k3 by dettus ---!>" >>index.html
cat index_headline >>index.html
echo "<table border="2"><tr>" >>index.html
for J in `seq 1 $linnum`
        do
                I=`head -n $J bildliste.txt | tail -n 1`;
                next=`echo $I | awk -F: '{ print $1; }' -`
                if [ $akt ]
                then
                        if [ 5 -eq $num ]
                        then    num=0
                                echo "</tr>" >>index.html
                        fi
                        echo '<td><center><a href="pic.'$akt'.html"><img src="t_'$akt'" alt="'$akt'"></a><br>' >>index.html
                        echo '<a href="pic.'$akt'.html">'$text'</a></center></td>' >>index.html

                        convert -size 50x50 $akt -resize 50x50 t_$akt
                        echo "<html>" >pic.$akt.html
                        echo "<!--- quick and dirty photoalbum (c)2k3 by dettus ---!>" >>pic.$akt.html
                        cat picture_headline >>pic.$akt.html
                        echo "<center>" >>pic.$akt.html
                        echo "<table><tr>" >>pic.$akt.html
                        echo '<td><a href="pic.'$prev'.html"><img src="back.png" alt="back"></a></td><td><a href="index.html"><img src="up.png" alt="up"></a></td><td><a href="pic.'$next'.html"><img src="forward.png" alt="forward"></a></td><td>' >>pic.$akt.html
                        echo "</tr></table><br><br>" >>pic.$akt.html
                        echo '<img src="'$akt'"><br><br>' >>pic.$akt.html
                        echo $text >>pic.$akt.html
                        echo "</center>" >>pic.$akt.html
                        cat picture_bottomline >>pic.$akt.html
                        echo "</html>" >>pic.$akt.html
                        prev=$akt
                        num=`echo $num+1 | bc`
                fi
                text=`echo $I | awk -F":" '{ print $2; }' -`
                akt=$next;
        done
echo "</table>" >>index.html
cat index_bottomline >>index.html
echo "</html>" >>index.html
dafuer musst du allerdings imagemagick aus den ports installiert haben. und seq, keine ahnung wo das drinnesteckt.
 

lme

FreeBSD Committer
#7
... und gnu core utils.
Das "echte" ls kennt kein "--color" ;)

Davon abgesehen ist das hier einfacher

Code:
for I in $1/*
statt
Code:
for I in `ls -1 --color=none $1`
"ls -1" ist übrigens in Skripten nicht nötig. Das braucht man nur, wenn man es interaktiv benutzt und in jeder Zeile eine Datei stehen haben will.
ls weiß, wenn stdout kein Terminal ist und nimmt intern dann ebenfalls immer nur eine Datei pro Zeile.


EDIT:
Mist, ich hab meinen 1000en Post verpasst. :(
 

oenone

Well-Known Member
#9
"ls -1" ist übrigens in Skripten nicht nötig. Das braucht man nur, wenn man es interaktiv benutzt und in jeder Zeile eine Datei stehen haben will.
ls weiß, wenn stdout kein Terminal ist und nimmt intern dann ebenfalls immer nur eine Datei pro Zeile.
Außerdem ist es "for" egal, ob da zeilenumbrüche oder nur leerzeichen sind ;) Genauer: es muss ein Zeichen aus $IFS sein
 

troll

Well-Known Member
#12
Viele von den Bildviewern haben doch so ne html-Exportfunktion. gwenview, gpic und wie sie alle heissen. Vielleicht reicht das ja schon aus.