0
我有一個Flask應用程序,我試圖對從Flask-WTF接收的文件執行一些PIL/Pillow操作 - > Flask-Uploads,但當我保存文件時,我缺少字節,圖像無效。從Flask上傳數據複製PIL圖像後缺少字節
它似乎甚至破壞原始上傳使圖像的副本,沒有額外的PIL的操作結果:
@sights_blueprint.route('/add', methods=['GET', 'POST'])
def add_image():
form = AddImageForm()
if request.method == 'POST':
if form.validate_on_submit():
# uploaded file
f = form.sights_image.data
filename = secure_filename(f.filename)
# PIL open + copy
img = Image.open(f).copy()
# save original file
f.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
結果:
original_file: 4622336 bytes
saved_file: 886784 bytes
如果我刪除img = Image.open(f).copy()
上傳文件正確保存。
如果我只打開與PIL圖像:
# PIL open (no copy)
img = Image.open(f)
文件也正確保存。
但是,如果我執行任何操作,複製或以其他方式,結果保存的文件是缺少字節和無效的圖像。
我該如何實現這個所需的工作流程?
我想'f'是一個只能被讀取一次的流。 'Image.open'實際上並不立即在圖像中讀取,而是'copy'強制它被使用。 –