2010-03-17 9 views
10

Ho un sacco di immagini che ho bisogno di altri utenti per navigare attraverso un browser web più o meno allo stesso modo di Apache-Gallery.Simple image server

sarei in grado di scaricare tutte le mie immagini in una directory in modo che gli utenti di colpire:

http://server:port/directory

vedrebbe piccole miniature e selezionando un'immagine avrebbero caricarla a schermo intero su una pagina con le opzioni a sfoglia l'immagine precedente o successiva.

Sto cercando una soluzione non Apache, molto simile al semplice server http wonderfull Python, che può essere lanciato da nessuna parte con una configurazione minima & polverone per esempio

python -m SimpleHTTPServer 8000 

In effetti, la soluzione pitone sopra è praticamente voglio voglio solo che non miniatura delle immagini, ma solo un semplice elenco di directory.

Felice di utilizzare un'app scritta in qualsiasi linguaggio comune purché sia ​​autonoma e possa essere eseguita su Linux su una porta personalizzata (e per ripetere, non un modulo Apache).

UPDATE

Ho appena trovato uno script python chiamato curator che è semplice da eseguire. Genera i thumbs necessari e l'html statico da qualsiasi immagine nella directory in cui la si punta, dopodiché è possibile utilizzare SimpleHttpServer per vendere i risultati.

+2

SimpleHTTPRequestHandler è una classe molto semplice, è sufficiente modificarlo per aggiungere le anteprime e generare anteprime al volo con PIL –

+0

Grazie per il suggerimento. Il curatore sembra fare tutto ciò di cui ho bisogno per ora però ... – Joel

+0

@AnuragUniyal Come lo modificheresti? Mi piacerebbe provarlo. – user3155368

risposta

4

Grazie per le risposte e i commenti. La soluzione che ho utilizzato è stata aggiornata al mio aggiornamento:

  1. Eseguire curator nella directory che contiene tutte le mie immagini. Questo genera pollici e una pagina indice, nonché l'impaginazione per tutte le immagini a dimensione intera.
  2. Run "*python -m SimpleHTTPServer 8000*" in quella directory per sfogliare il codice HTML risultante generato dal curatore

Quindi questo è un semplice processo in due fasi che praticamente soddisfa le mie esigenze iniziali.

+0

Questo ha funzionato benissimo finché non ha provato a interpretare le gif come jpeg nel processo di generazione delle miniature. Quando avrò tempo libero a un certo punto, vedrò se riesco a riparare questo pacchetto in qualche modo. –

3

Sebbene non usi la classe SimpleHTTerver, questo script cgi-bin mostra come visualizzare le immagini in un modo molto semplice. Estendilo per soddisfare le tue esigenze. 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, lo verificherà – Joel

9

Questo era tutto molto tempo fa ora, ma ho appena iniziato imageMe, che mira a soddisfare esattamente questa esigenza. È possibile configurarlo con le istruzioni sul sito, ma se si desidera solo servire una galleria di base delle immagini dentro e sotto la posizione corrente, questo comando eseguirlo sulla porta 8000:

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

Speriamo che aiuta chiunque altro a rispondere a questa domanda!