影像縮圖

      在〈影像縮圖〉中尚無留言

todo

Nginx 設定

因為製作縮圖,會花很久的時間,但 Nginx 預設連線10秒就會顯示 500 無法連線,所以在 nginx.conf 的 http 區塊把連線時間設的很大,如下

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
	client_max_body_size 100m;
    proxy_connect_timeout   10000;
    proxy_send_timeout      15000;
    proxy_read_timeout      20000;
    server{
        ......
    }

todo

Pillow 縮圖

Pillow 的開檔、縮圖、存檔的效能都比 Opencv-Python 好很多,所以使用 Pillow 來進行縮圖。不過圖檔太大時,Pillow 會出現 “Image size (xxx pixels) exceeds limit of 178956970 pixels, could be decompression” 的例外,也就是超出能處理的範圍,此時需在 Python 進行縮圖時加入如下設定

from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
Image.MAX_IMAGE_PIXELS = None
#然後開始處理縮圖

製作縮圖代碼如下

    from PIL import Image
    thumb_dir=os.path.dirname(path).replace('primitive', 'thumb')
    if not os.path.exists(thumb_dir):
        os.makedirs(thumb_dir)
    pil=Image.open(path)
    pil.thumbnail((800,600))
    file=os.path.basename(path)
    pil.save(os.path.join(thumb_dir, file))

todo

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *