如何解释通过表单(POST)而不是本地图像Python-PIL上传的图像

2024-10-01 09:30:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图解释一个图像,我的代码用于解释本地保存的图像,但我想解释通过POST上传到表单的图像,而不实际将其存储在本地。有可能吗

  1. 我尝试使用request.form['receipt-photo']receipt-photo是上载字段的名称)
text = image_to_string(Image.open(request.form['receipt-photo']))

但是我得到了FileNotFoundError: [Errno 2] No such file or directory: 'receipt3.jpg'

  1. 我也试过了
text = image_to_string(request.form['receipt-photo'])

我犯了个错误

pytesseract.pytesseract.TesseractError: (1, 'Tesseract Open Source OCR Engine v4.0.0 with Leptonica Error, cannot read input file /Users/alexmarginean/Documents/Projects/Weeper/receipt3.jpg: No such file or directory Error during processing.')

  1. 然后我在网上搜索,发现了一些关于转换成字节的东西,但对我来说不起作用
text = image_to_string(Image.open(BytesIO(request.form['receipt-photo'])))

出现错误:TypeError: a bytes-like object is required, not 'str'


这是可行的(但它使用本地存储的图像)

这是我使用本地存储图像的代码

text = image_to_string(Image.open('receipt3.jpg'))

我希望我的照片是可用的只是从发送一个POST请求,而不是保存在本地的图像。 如果有人能帮我,我会非常感激的


Tags: to代码text图像imageformstringrequest
1条回答
网友
1楼 · 发布于 2024-10-01 09:30:02

创建一个文件夹来存储上传的文件,我们称之为/uploads

在表单中创建上载字段和按钮

<form action="/upload" method="POST" enctype="multipart/form-data">
    <input type="file" name="receipt-photo">
    <input type="submit" value="Upload">
</form>

然后在烧瓶中(假设您使用烧瓶)添加一个端点

@app.route('/upload', methods=[POST])
    file = request.files['receipt-photo']
    f = os.path.join('/uploads', file.filename)

    file.save(f)

    # Manipulate image with PIL

相关问题 更多 >