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