@maryaTurova

Почему ошибка при получении картинки в base64?

Уважаемые! Подскажите что делаю не так?

Отправляю картинку в формате base64
import requests
img = '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'

res = requests.get('http://127.0.0.1:5000/ocr?img='+img)
answer = res.text
print(answer)

Принимаю её на Flask
from PIL import Image
import io

app = Flask(__name__)

@app.route('/ocr', methods=['GET'])
def ocr ():
    img = request.args.get('img')
    
    im = Image.open(io.BytesIO(base64.b64decode(img)))
    im.save('1.png')
    im.close()
    return 'ok'

if __name__ == "__main__":
    app.run()

Получаю ошибку:
610961bad5a7c308383731.png

im = Image.open(io.BytesIO(base64.b64decode(img)))
File "C:\Users\kdw22\AppData\Local\Programs\Python\Python36\lib\base64.py", line 87, in b64decode
return binascii.a2b_base64(s)
binascii.Error: Incorrect padding

Символы unicode отсутствуют. Картинка передаётся как есть.
При этом если скопировать base64 и вставить в браузер картинка открывается.
Что ни так?
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
@maryaTurova Автор вопроса
Сам отвечу :
urllib.parse.quote_plus()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы