2010-03-17 47 views
10

Tôi có một loạt hình ảnh mà tôi cần những người khác duyệt qua trình duyệt web theo cách tương tự như Apache-Gallery.Máy chủ hình ảnh đơn giản

Tôi muốn có thể đổ tất cả hình ảnh của tôi trong một thư mục để người dùng đánh:

http://server:port/directory

sẽ thấy hình ảnh thu nhỏ và chọn một hình ảnh sẽ tải nó kích thước đầy đủ trên một trang với các tùy chọn để duyệt qua hình ảnh trước đó hoặc tiếp theo.

Tôi đang tìm một giải pháp không phải Apache, giống như máy chủ http đơn giản của Wonderfull đơn giản, có thể được khởi chạy ở bất kỳ đâu với cấu hình tối thiểu & fuss ví dụ:

python -m SimpleHTTPServer 8000 

Thực tế, giải pháp python ở trên là khá nhiều điều tôi muốn trừ khi nó không thu nhỏ hình ảnh mà chỉ là danh sách thư mục đơn giản.

Vui lòng sử dụng ứng dụng được viết bằng bất kỳ ngôn ngữ chung nào miễn là nó được tự chứa và có thể chạy trên linux trên cổng tùy chỉnh (và lặp lại, không phải mô-đun Apache).

CẬP NHẬT

tôi chỉ tìm thấy một kịch bản python gọi curator đó là đơn giản để chạy. Nó tạo ra các ngón tay cái cần thiết và html tĩnh từ bất kỳ hình ảnh nào trong thư mục mà bạn trỏ nó vào, sau đó bạn có thể sử dụng SimpleHttpServer để bán kết quả.

+2

SimpleHTTPRequestHandler là một lớp rất đơn giản, bạn chỉ có thể tinh chỉnh nó để thêm hình thu nhỏ và bạn cũng có thể tạo hình thu nhỏ khi đang di chuyển bằng cách sử dụng PIL –

+0

Cảm ơn bạn đã có mẹo. Curator dường như làm tất cả những gì tôi cần bây giờ mặc dù ... – Joel

+0

@AnuragUniyal Bạn sẽ tinh chỉnh nó như thế nào? Tôi muốn thử nó. – user3155368

Trả lời

4

Cảm ơn câu trả lời và nhận xét. Giải pháp tôi đã sử dụng cuối cùng là theo bản cập nhật của tôi:

  1. Chạy curator trong thư mục chứa tất cả hình ảnh của tôi. Điều này tạo ra các ngón tay cái và một trang chỉ mục, cũng như phân trang cho tất cả các hình ảnh có kích thước đầy đủ.
  2. Run "*python -m SimpleHTTPServer 8000*" trong thư mục đó để duyệt html kết quả được tạo ra bởi người phụ trách

Vì vậy, đây là một quá trình hai bước đơn giản mà khá nhiều đáp ứng các yêu cầu ban đầu của tôi.

+0

Điều này làm việc tuyệt vời cho đến khi nó đã cố gắng giải thích gifs như jpegs trong quá trình tạo hình thu nhỏ. Khi tôi nhận được thời gian rảnh rỗi tại một số điểm tôi sẽ xem nếu tôi có thể sửa chữa gói này bằng cách nào đó. –

3

Mặc dù nó không sử dụng lớp SimpleHTTPServer, tập lệnh cgi-bin này hiển thị cách hiển thị hình ảnh theo cách rất đơn giản. Mở rộng nó để phù hợp với nhu cầu của bạn. 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, sẽ kiểm tra nó ra – Joel

9

Điều này đã được khá lâu rồi, nhưng tôi mới bắt đầu imageMe, nhằm đáp ứng chính xác nhu cầu này. Bạn có thể thiết lập nó với các hướng dẫn trên trang web, nhưng nếu bạn chỉ muốn phục vụ cho một bộ sưu tập cơ bản của hình ảnh trong và dưới vị trí hiện tại của bạn, lệnh này sẽ chạy nó trên cổng 8000:

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

Hy vọng rằng giúp bất kỳ ai khác đến cùng để trả lời câu hỏi này!