2010-03-17 11 views
10

Tengo un montón de imágenes que necesito que otros busquen a través de un navegador web de la misma manera que Apache-Gallery.Servidor de imágenes simple

me gustaría ser capaz de volcar todos mis imágenes en un directorio para que los usuarios golpear:

http://server:port/directory

vería pequeñas miniaturas y seleccionando una imagen cargarían a tamaño completo en una página con opciones a navegar por la imagen anterior o siguiente.

Estoy buscando una solución que no sea Apache, al igual que el maravilloso servidor http simple de Python, que se puede iniciar en cualquier lugar con una configuración mínima & alboroto, p.

python -m SimpleHTTPServer 8000 

De hecho, la solución anterior se pitón más o menos quieren Quiero excepto que no miniaturas las imágenes, sino sólo un simple listado de directorios.

Feliz de usar una aplicación escrita en cualquier idioma común, siempre que sea autónoma y pueda ejecutarse en Linux en un puerto personalizado (y para volver a iterar, no en un módulo Apache).

ACTUALIZACIÓN

Acabo de encontrar un script en Python llamada curator que es fácil de ejecutar. Genera los pulgares necesarios y el html estático de cualquier imagen en el directorio al que lo apunta, después de lo cual puede usar SimpleHttpServer para vender los resultados.

+2

SimpleHTTPRequestHandler es una clase muy simple, puede modificarla para agregar miniaturas, y también puede generar miniaturas sobre la marcha usando PIL –

+0

Gracias por la sugerencia. Curador parece hacer todo lo que necesito por ahora, aunque ... – Joel

+0

@AnuragUniyal ¿Cómo lo modificarías? Me gustaría probarlo – user3155368

Respuesta

4

Gracias por las respuestas y comentarios. La solución que terminé usando fue según mi actualización:

  1. Ejecute curator en el directorio que contiene todas mis imágenes. Esto genera pulgares y una página de índice, así como la paginación de todas las imágenes de tamaño completo.
  2. Ejecutar "*python -m SimpleHTTPServer 8000*" en ese directorio para buscar el código HTML resultante generada por el curador

Así que esto es un simple proceso de dos etapas que más o menos satisface mis necesidades iniciales.

+0

Esto funcionó muy bien hasta que intentó interpretar gifs como jpegs en el proceso de generación de miniaturas. Cuando tenga el tiempo libre en algún momento, veré si puedo arreglar este paquete de alguna manera. –

3

Aunque no utiliza la clase SimpleHTTPServer, este script cgi-bin muestra cómo mostrar imágenes de una manera muy simple. Extiéndalo para que se ajuste a sus necesidades. 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 comprobará – Joel

9

Esto fue todo hace bastante tiempo, pero acabo de comenzar imageMe, que tiene como objetivo cumplir exactamente esta necesidad. Puede configurarlo con las instrucciones en el sitio, pero si lo que desea es servir a una galería básica de las imágenes en y por debajo de su ubicación actual, este comando se ejecutará en el puerto 8000:

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

Esperemos que ayuda a cualquier otra persona a que responda esta pregunta!