问题描述
原文:
(本练习中不允许使用任何现成的 Python 库)
@app.route("/flip",methods=["POST"])
def flip():
# retrieve parameters from html form
if 'horizontal' in request.form['mode']:
direction = 90
elif 'vertical' in request.form['mode']:
direction = -90
filename = request.form['image']
# open and process image
target = os.path.join(APP_ROOT,'static/images')
destination = "/".join([target,filename])
img = Image.open(destination)
subprocess.call(['C:\Program Files\ImageMagick-7.0.10-Q16-HDRI\magick.exe','convert',f'{destination}','-rotate',f'{direction}',f'{destination}'],shell=True)
# save and return image
destination = "/".join([target,'flipped.jpg'])
if os.path.isfile(destination):
os.remove(destination)
img.save(destination)
return send_image('flipped.jpg')
编辑:当我将 subprocess.call
中的目标图像设置为 flipped.jpg
时 - 输出是原始图像。为什么?
解决方法
已解决:
if 'horizontal' in request.form['mode']:
direction = 'flip'
elif 'vertical' in request.form['mode']:
direction = 'flop'
filename = request.form['image']
# open and process image
target = os.path.join(APP_ROOT,'static/images')
destination = "/".join([target,filename])
subprocess.call(['C:\Program Files\ImageMagick-7.0.10-Q16-HDRI\magick.exe','convert',f'{destination}','-'f'{direction}',f'{destination}'],shell=True)
return send_image(filename)