2010-03-17 15 views
10

Ich habe eine Reihe von Bildern, die ich brauche andere zu durchsuchen über einen Web-Browser in etwa so wie Apache-Gallery.Einfacher Bildserver

ich wäre in der Lage alle meine Bilder in einem Verzeichnis zu entleeren, so dass Benutzer treffen:

http://server:port/directory

kleine Thumbnails und Auswahl eines Bildes sehen würde, würde es in voller Größe auf einer Seite mit Optionen laden zu Durchsuchen Sie das vorherige oder nächste Bild.

Ich bin auf der Suche nach einer nicht-Apache-Lösung, sehr ähnlich wie der wunderbare Python-einfach HTTP-Server, der überall mit minimaler Konfiguration & Getauft werden kann z.

python -m SimpleHTTPServer 8000 

In der Tat, über die Python-Lösung ist ziemlich viel will ich will, außer es nicht die Bilder nicht thumbnail sondern nur eine einfache Verzeichnisliste.

Glücklich, eine Anwendung zu verwenden, die in irgendeiner allgemeinen Sprache geschrieben wird, so lange es eigenständig ist und auf Linux auf einem benutzerdefinierten Port ausgeführt werden kann (und erneut zu iterieren, kein Apache-Modul).

UPDATE

Ich habe gerade ein Skript Python namens curator, die laufen einfach. Er generiert die erforderlichen Thumbs und statischen HTML-Dateien von allen Bildern in dem Verzeichnis, auf das Sie ihn richten. Danach können Sie SimpleHttpServer verwenden, um die Ergebnisse zu verkaufen.

+2

SimpleHTTPRequestHandler ist eine sehr einfache Klasse, Sie können sie einfach anpassen, um Miniaturbilder hinzuzufügen, und Sie können Thumbnails auch on the fly mit PIL –

+0

erstellen Danke für den Tipp. Kurator scheint jetzt alles zu tun, was ich brauche, aber ... – Joel

+0

@AnnoragUniyal Wie würden Sie es optimieren? Ich würde es gerne versuchen. – user3155368

Antwort

4

Danke für die Antworten und Kommentare. Die Lösung, die ich am Ende verwendete, war gemäß meiner Aktualisierung:

  1. Führen Sie curator in dem Verzeichnis, das alle meine Bilder enthält. Dadurch werden Thumbs und eine Indexseite sowie Seitenumbrüche für alle Bilder in voller Größe generiert.
  2. Run „*python -m SimpleHTTPServer 8000*“ in diesem Verzeichnis die resultierende html von
  3. Kurator erzeugt durchsuchen

Das ist also ein einfacher zweistufiger Prozess, der ziemlich genau erfüllt meine ursprünglichen Anforderungen.

+0

Dies funktionierte großartig, bis es versuchte, Gifs als JPEGs in der Thumbnail-Generierung zu interpretieren. Wenn ich irgendwann die Freizeit habe, werde ich sehen, ob ich dieses Paket irgendwie reparieren kann. –

3

Obwohl es die SimpleHTTPServer-Klasse nicht verwendet, zeigt dieses cgi-bin-Skript, wie Bilder auf sehr einfache Weise angezeigt werden. Erweitern Sie es auf Ihre Bedürfnisse. Source is here.

from os import listdir 
from random import choice 

ext2conttype = {"jpg": "image/jpeg", 
       "jpeg": "image/jpeg", 
       "png": "image/png", 
       "gif": "image/gif"} 

def content_type(filename): 
    return ext2conttype[filename[filename.rfind(".")+1:].lower()] 

def isimage(filename): 
    """true if the filename's extension is in the content-type lookup""" 
    filename = filename.lower() 
    return filename[filename.rfind(".")+1:] in ext2conttype 

def random_file(dir): 
    """returns the filename of a randomly chosen image in dir""" 
    images = [f for f in listdir(dir) if isimage(f)] 
    return choice(images) 

if __name__ == "__main__": 
    dir = "c:\\python\\random_img\\" 
    r = random_file(dir) 
    print "Content-type: %s\n" % (content_type(r)) 
    print file(dir+r, "rb").read() 
+0

thx, wird es überprüfen – Joel

9

Das war alles schon ziemlich lange her, aber ich habe gerade begonnen imageMe, die genau dieses Bedürfnis erfüllen soll. Sie können es mit den Anweisungen auf der Website, aber wenn Sie nur eine einfache Galerie der Bilder in und unterhalb der aktuellen Position dienen soll, dieser Befehl wird es auf Port 8000 laufen:

curl https://raw.githubusercontent.com/unwitting/imageme/master/imageme.py | python 

Hoffentlich hilft jedem, der mitkommt, um diese Frage zu beantworten!