2016-12-22 54 views
0

我想上传和下载图像文件并使用Flask将png转换为jpg。 所以我使用PIL。我不知道上传和下载并将png转换为jpg。使用Flask上传和下载图像文件

这是代码

from flask import Flask, make_response, request 
from PIL import Image 

app = Flask(__name__) 

def transform(pngtojpg): 
    pngtojpg.save('c:/photo/result_image.jpg') 
    return pngtojpg 


@app.route('/') 
def form(): 
    return """ 
     <html> 
      <body> 
       <h1>Transform a png to jpg</h1> 

       <form action="/convert" method="post" enctype="multipart/form-data"> 
        <input type="file" name="img_file" /> 
        <input type="submit" /> 
       </form> 
      </body> 
     </html> 
    """ 

@app.route('/convert', methods=["POST"]) 
def convert_view(): 
    file = request.files['img_file'] 
    if not file: 
     return "No file" 

    png = Image.open(file) 

    result = transform(png) 

    response = make_response(result) 
    response.headers["Content-Disposition"] = "attachment; filename=result_image.jpg" 
    return response 


if __name__ == '__main__': 
    app.run(host='0.0.0.0') 

回答

1

为了处理上载有一看瓶文档Uploading Files。另外我可以推荐使用Flask-Uploads Plugin来处理上传。下载很容易,因为您只需提供指向图像文件的链接。

对于将图像从jpg转换为pngPillow是一个不错的选择。它是PIL的继任者。