Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
02.06.2011, 18:51
UserFriendly



Hi,

ich suche ein Programm, mit dem man aus einer großen Anzahl von Bildern automatisch eine HTML-Liste erstellen kann, die diese Bilder, am besten mit Dateinamen verlinkt. Also wie ein Gallerie-Erstellungsskript, nur nicht mit Thumbnails, sondern mit dem Dateinamen o.Ä.

Sowas müsste es doch geben, oder?

--

zum Seitenanfang zum Seitenende Profil || Suche
001
02.06.2011, 20:26
Bluthund



Shellscript?
Quellcode:#!/bin/bash

output="gallery.html"
title="Bildergalerie"
eval picdir="~/Pictures"

cat > "$output" << EOF
<!doctype html>
<html>
  <head>
    <title>$title</title>
    <link rel="stylesheet" type="text/css" href="gallery.css">
  </head>
  <body>
    <ul>
EOF

find "$picdir" -type f |
while read file
do
    if file "$file" | grep -iq 'image data'; then
        echo '<li><a href="'$file'">'$file'</a></li>' >> "$output"
    fi
done

echo -n "</ul></body></html>" >> "$output"
Stylebar ueber gallery.css, e.g.:Quellcode:body {
    font-family: sans-serif;
    background: lightgray;
}

ul {
    list-style-type: none;
}

ul li {
    margin: 0.25em;
}

ul li a:link {
    color: #002a90;
}
Oder warst du eher auf was zum Klicken aus? OS?

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-


Dieser Beitrag wurde am 02.06.2011 um 20:28 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
04.06.2011, 18:19
UserFriendly



Hey,

danke für deine Antwort. Habe WinXP.
Wie das ganze funktioniert ist mir eigentlich egal. Eine Frage zu deinem Skript:
Wie wende ich es an? ;)

--

zum Seitenanfang zum Seitenende Profil || Suche
003
05.06.2011, 14:05
McScore



Du brauchst eine Bash. Die ist in Cygwin enthalten. Ich finde, das Ding ist zu aufgeblasen. MSYS ist schlanker und reicht oft aus. Noch simpler sind die unxutils.
Dann einfach "bash galleriescript.sh" im Terminal (wobei die Datei galleriescript.sh natürlich Bluthunds Quelltext enhtält).

--

... und der große böse Wolf bootete und bootete und bootete ...
Optimiere deine Map, sieh dir alle Compile-Errors an, frage den Hersteller und beschwer dich über nichts!
http://www.mcscore.de.vu
13+3+7=23, 133/7+23=42


Dieser Beitrag wurde am 05.06.2011 um 14:06 von McScore bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
05.06.2011, 15:19
theDon



unxutils hat halt keine Shell (und insbesondere auch keine Bash). Ansonsten gibt es auch noch INTERIX (“Microsoft Services for Unix”), das ist aber mehr so die Groessenordnung von Cygwin.

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
005
05.06.2011, 18:35
UserFriendly



Hey,

also das Skript funktioniert, ich kann es nur noch nicht gebrauchen, da er mir einen absoluten Pfad setzt (home/[User]/bild.jpg), den ich nicht öffnen kann.

Gibt es eine möglichkeit einen relativen Pfad zu setzen, der einfach auf den \pictures Ordner im selben Verzeichnis verweist?

--

zum Seitenanfang zum Seitenende Profil || Suche
006
05.06.2011, 19:30
default



basename

--

Du musst Deine Bandbreite verbreitern, damit du breiter wirst von der Bandbreite her und ein breiteres Publikum ansprechen kannst.

zum Seitenanfang zum Seitenende Profil || Suche
007
05.06.2011, 19:35
caedes



probier mal folgendes:
Quellcode:#!/bin/bash

output="gallery.html"
title="Bildergalerie"
eval picdir="~/Pictures"

cat > "$output" << EOF
<!doctype html>
<html>
  <head>
    <title>$title</title>
    <link rel="stylesheet" type="text/css" href="gallery.css">
  </head>
  <body>
    <ul>
EOF

cd "$picdir"

find -type f |
while read file
do
    if file "$file" | grep -iq 'image data'; then
        echo '<li><a href="'$file'">'$file'</a></li>' >> "$output"
    fi
done

echo -n "</ul></body></html>" >> "$output"
(hab den pfad aus find rausgenommen, stattdessen vorher nen cd in den pfad - dadurch solltest du relative pfade zu den bildern bekommen)

--

caedes

Deutschland rückt nach Einschätzung der Sicherheitsbehörden im Superwahljahr verstärkt ins Visier von Terroristen.


Dieser Beitrag wurde am 05.06.2011 um 19:35 von caedes bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
05.06.2011, 19:38
caedes



Zitat:
default postete
basename
damit ist gemeint, dass du echo '<li><a href="'$file'">'$file'</a></li>' >> "$output"
durch
echo '<li><a href="'$file'">'$(basename $file)'</a></li>' >> "$output"
ersetzt, glaub ich. sollte auch gehen, ist vielleicht besser als meine lösung

--

caedes

Deutschland rückt nach Einschätzung der Sicherheitsbehörden im Superwahljahr verstärkt ins Visier von Terroristen.

zum Seitenanfang zum Seitenende Profil || Suche
009
05.06.2011, 21:41
UserFriendly



Super, danke!
Mit
Quellcode:echo '<li><a href="'$(basename $file)'" target="_blank">'$(basename $file)'</a></li>' >> "$output" funktioniert es, wenn ich die Bilder dann vom Pictures-Ordner in den Hauptordner schiebe.

Noch eine Frage: Gibt es eine Variable, die den Namen ohne die Dateiendung .jpg ausliest? Das wäre perfekt.
Oder vielleicht ganz stupide: Irgendeinen Parameter, der die letzten 4 Zeichen entfernt ;)

--

zum Seitenanfang zum Seitenende Profil || Suche
010
05.06.2011, 22:48
caedes



achja, das erste $file hatte ich wohl übersehen.
http://tldp.org/LDP/abs/html/refcards.html#AEN22429
${string/%substring/replacement} If $substring matches back end of $string, substitute $replacement for $substring

also ${$file/%.jpg/""} sollte dann in $file das .jpg durch "" ersetzen, also praktisch löschen.

--

caedes

Deutschland rückt nach Einschätzung der Sicherheitsbehörden im Superwahljahr verstärkt ins Visier von Terroristen.

zum Seitenanfang zum Seitenende Profil || Suche
011
06.06.2011, 01:41
Bluthund



Das geht aber auch einfacher mit ${file%.jpg} bzw. ${file%.*} wenn die letzte Extension generell weichen soll und nicht nur ".jpg" oder auch mit dem optionalen Suffix-Parameter zu basename: $(basename $file .jpg) (wenn es da eh schon durch geht).

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-


Dieser Beitrag wurde am 06.06.2011 um 01:45 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
012
06.06.2011, 12:08
UserFriendly



Ah, vielen Dank, es hat funktioniert!

Jetzt kann ich eine Liste von ungefähr 1000 Bildern erstellen

--

zum Seitenanfang zum Seitenende Profil || Suche