sicher hat es so was schon gegeben. Aber ich wollte was Einfaches machen. Kann ja jeder selbst ändern

Also der Code macht folgendes:
Nach Abfrage des gewünschten Verzeichnis wird dieses geprüft.
Es wird nach Überschrift, Autor und Anzahl der Bilder pro Zeile gefragt.
Im gewähltem Verzeichnis werden die Ordner "images" und "thumbs" angelegt.
Die Bilder werden nach "images" kopiert und von ihnen werden Vorschaubilder erstellt, welche unter "thumbs" gespeichert werden.
Im Verzeichnis wird eine "index.html" erstellt, welche dann die Vorschau liefert.
Hier der Code
Achtung, Code sollte nun problemlos laufen.
Auf Seite 2 findet ihr das Ganze aber noch mit GUI von BurstNibbler für PB4.3.1
Code: Alles auswählen
; HTML Galeri
; Torsten Malchow
; Maj 2009
;{ Enumeration
Enumeration
;{ Bilder
#bild_laden
#bild_thumb
#bild_image
;}
;{ Verzeichnis
#directory
;}
;{ Datei
#arkiv
;}
;{ Fenster
#fe_main
;}
;{ Gadgets
#ga_progress
;}
EndEnumeration
;}
;{ Variablen
EnableExplicit
NewList bilder.s()
Define.l Event, Quit, i, j, zellen, anzahl_bilder
Define.s pfad, pfad_images, pfad_thumbs, header, autor, datum
Global text.s
;}
;{ Prozeduren
Procedure zeile_hor()
WriteStringN(#arkiv,"<a href='images/"+text+"' target='_blank'><img class='photo' src='thumbs/"+text+"' width='200' height='150' alt='thumbs/"+text+"' title='"+text+"'></a>")
EndProcedure
Procedure zeile_vert()
WriteStringN(#arkiv,"<a href='images/"+text+"' target='_blank'><img class='photo' src='thumbs/"+text+"' width='150' height='200' alt='thumbs/"+text+"' title='"+text+"'></a>")
EndProcedure
;}
;{ Init
pfad = PathRequester("Välj mapp","")
If pfad = "" Or pfad = "\"
End
EndIf
pfad_images = pfad + "images\"
pfad_thumbs = pfad + "thumbs\"
ClearList(bilder())
; läsa bildfiler
If ExamineDirectory(#directory, pfad, "*.*")
While NextDirectoryEntry(#directory)
If DirectoryEntryType(#directory) = #PB_DirectoryEntry_File
If Right(DirectoryEntryName(#directory),3) = "png" Or Right(DirectoryEntryName(#directory),3) = "jpg" Or Right(DirectoryEntryName(#directory),3) = "bmp" Or Right(DirectoryEntryName(#directory),3) = "PNG" Or Right(DirectoryEntryName(#directory),3) = "JPG" Or Right(DirectoryEntryName(#directory),3) = "BMP"
AddElement(bilder())
bilder() = DirectoryEntryName(#directory)
EndIf
EndIf
Wend
FinishDirectory(#directory)
EndIf
ResetList(bilder())
anzahl_bilder = ListSize(bilder())
datum = FormatDate("%yyyy-%mm-%dd", Date())
header = InputRequester("Eingabe","Überschrift:","")
If header = ""
End
EndIf
header = ReplaceString(header, "ä", "ä")
header = ReplaceString(header, "Ä", "Ä")
header = ReplaceString(header, "ö", "ö")
header = ReplaceString(header, "Ö", "Ö")
header = ReplaceString(header, "ü", "ü")
header = ReplaceString(header, "Ü", "Ü")
header = ReplaceString(header, "ß", "ß")
header = ReplaceString(header, "å", "å")
header = ReplaceString(header, "Å", "Å")
autor = InputRequester("Eingabe","Autor:","")
If autor = ""
End
EndIf
autor = ReplaceString(autor, "ä", "ä")
autor = ReplaceString(autor, "Ä", "Ä")
autor = ReplaceString(autor, "ö", "ö")
autor = ReplaceString(autor, "Ö", "Ö")
autor = ReplaceString(autor, "ü", "ü")
autor = ReplaceString(autor, "Ü", "Ü")
autor = ReplaceString(autor, "ß", "ß")
autor = ReplaceString(autor, "å", "å")
autor = ReplaceString(autor, "Å", "Å")
zellen = Val(InputRequester("Eingabe","Anzahl Bilder in einer Zeile (2....10):",""))
If zellen = 0
End
EndIf
If zellen < 2 Or zellen > 10
End
EndIf
CreateDirectory(pfad_images)
CreateDirectory(pfad_thumbs)
OpenWindow(#fe_main,0,0,200,100,"Verlauf",#PB_Window_TitleBar | #PB_Window_ScreenCentered)
ProgressBarGadget(#ga_progress,10,45,180,10,0,anzahl_bilder)
SetGadgetState(#ga_progress,0)
i = 1
j = 0
UseJPEGImageDecoder()
UseJPEGImageEncoder()
UsePNGImageDecoder()
UsePNGImageEncoder()
CreateFile(#arkiv, pfad + "index.html")
WriteStringN(#arkiv,"<html>")
WriteStringN(#arkiv,"<head>")
WriteStringN(#arkiv,"<title>"+header+"</title>")
WriteStringN(#arkiv,"</head>")
WriteStringN(#arkiv,"<body>")
WriteStringN(#arkiv,"<h2>"+header+"</h2>")
WriteStringN(#arkiv,"<h4>Autor: "+autor+"<br>")
WriteStringN(#arkiv,"Datum: "+datum+"</h4>")
WriteStringN(#arkiv,"<table>")
;}
;{ Huvudslinga
Repeat
Event = WindowEvent()
If NextElement(bilder())
text = GetFilePart(bilder())
LoadImage(#bild_laden,pfad + bilder())
If ImageHeight(#bild_laden) < ImageWidth(#bild_laden)
CopyImage(#bild_laden, #bild_image)
CopyImage(#bild_laden, #bild_thumb)
ResizeImage(#bild_thumb,200,150)
Else
CopyImage(#bild_laden, #bild_image)
CopyImage(#bild_laden, #bild_thumb)
ResizeImage(#bild_thumb,150,200)
EndIf
; #################################################
If Right(text,3) = "jpg" Or Right(text,3) = "JPG"
SaveImage(#bild_thumb, pfad_thumbs + text, #PB_ImagePlugin_JPEG,10)
ElseIf Right(text,3) = "png" Or Right(text,3) = "PNG"
SaveImage(#bild_thumb, pfad_thumbs + text, #PB_ImagePlugin_PNG)
Else ; BMP
SaveImage(#bild_thumb, pfad_thumbs + text, #PB_ImagePlugin_BMP)
EndIf
; #################################################
CopyFile(pfad + bilder(),pfad_images + text)
DeleteFile(pfad + bilder())
j + 1
If j = zellen + 1
j = 1
; tr anfangen
WriteStringN(#arkiv,"<tr>")
WriteStringN(#arkiv,"<td align=center>")
If ImageHeight(#bild_laden) < ImageWidth(#bild_laden)
zeile_hor()
Else
zeile_vert()
EndIf
WriteStringN(#arkiv,"<p>"+text+"</p>")
WriteStringN(#arkiv,"</td>")
ElseIf j = zellen
; tr abschliessen
WriteStringN(#arkiv,"<td align=center>")
If ImageHeight(#bild_laden) < ImageWidth(#bild_laden)
zeile_hor()
Else
zeile_vert()
EndIf
WriteStringN(#arkiv,"<p>"+text+"</p>")
WriteStringN(#arkiv,"</td>")
WriteStringN(#arkiv,"</tr>")
ElseIf j = 1
; tr anfangen
WriteStringN(#arkiv,"<tr>")
WriteStringN(#arkiv,"<td align=center>")
If ImageHeight(#bild_laden) < ImageWidth(#bild_laden)
zeile_hor()
Else
zeile_vert()
EndIf
WriteStringN(#arkiv,"<p>"+text+"</p>")
WriteStringN(#arkiv,"</td>")
Else
; normal schreiben
WriteStringN(#arkiv,"<td align=center>")
If ImageHeight(#bild_laden) < ImageWidth(#bild_laden)
zeile_hor()
Else
zeile_vert()
EndIf
WriteStringN(#arkiv,"<p>"+text+"</p>")
WriteStringN(#arkiv,"</td>")
EndIf
i + 1
SetGadgetState(#ga_progress,i)
Else
Quit = 1
EndIf
Until Quit = 1
;}
;{ Programända
If j <> 0
WriteStringN(#arkiv,"</tr>")
EndIf
WriteStringN(#arkiv,"</table>")
WriteStringN(#arkiv,"</body>")
WriteStringN(#arkiv,"</html>")
CloseFile(#arkiv)
;}
Torsten
Edit: kleinen Fehler entfernt
Edit: zum Code die richtigen Imageplugins hinzu geschrieben
Umlaute werden richtig dargestellt