Простой сервер изображений
У меня есть куча изображений, в которых мне нужны другие, чтобы просматривать через веб-браузер практически так же, как Apache-Gallery.
Я мог бы сбросить все мои изображения в каталоге, чтобы пользователи нажимали:
http://server:port/directory
увидит маленькие миниатюры, а выбор изображения загрузит его полный размер на странице с параметрами для просмотра предыдущего или следующего изображения.
Я ищу решение без Apache, так же, как замечательный простой HTTP-сервер Python, который можно запускать в любом месте с минимальной конфигурацией и суеткой, например.
python -m SimpleHTTPServer 8000
На самом деле, решение python, приведенное выше, в значительной степени хочет, я хочу, за исключением того, что оно не уменьшает изображения, а просто представляет собой список каталогов.
С удовольствием использую приложение, написанное на любом распространенном языке, если оно самодостаточно и может работать на linux на пользовательском порту (и повторять итерацию, а не модуль Apache).
UPDATE
Я просто нашел python script, называемый curator, который прост в запуске. Он генерирует требуемые большие пальцы и статические html из любых изображений в каталоге, на который вы указываете его, после чего вы можете использовать SimpleHttpServer для публикации результатов.
Ответы
Ответ 1
Спасибо за ответы и комментарии. Решение, которое я закончил использовать, было в соответствии с моим обновлением:
- Запустите
curator
в каталоге, содержащем все мои изображения. Это генерирует большие пальцы и индексную страницу, а также разбиение на страницы на все полноразмерные изображения.
- Запустите "
*python -m SimpleHTTPServer 8000*
" в этом каталоге, чтобы просмотреть полученный html файл, созданный куратором
Итак, это простой двухэтапный процесс, который в значительной степени удовлетворяет моим первоначальным требованиям.
Ответ 2
Это было совсем давно, но я только что начал imageMe, целью которого является выполнение именно этой потребности. Вы можете настроить его с инструкциями на сайте, но если вы просто хотите обслуживать базовую галерею изображений в и ниже вашего текущего местоположения, эта команда будет запускать ее на порту 8000:
curl https://raw.githubusercontent.com/unwitting/imageme/master/imageme.py | python
Надеюсь, это поможет кому-то еще подойти, чтобы ответить на этот вопрос!
Ответ 3
Хотя он не использует класс SimpleHTTPServer, этот cgi-bin script показывает, как отображать изображения очень просто. Расширьте его, чтобы он соответствовал вашим потребностям. Источник здесь.
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 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()