Как передать изображение из питона в Laravel - PullRequest
0 голосов
/ 23 марта 2019

У меня есть скрипт на python, который генерирует изображение с использованием библиотеки подушек, я хочу использовать его в качестве бэкэнда и позволять laravel управлять им, Как мне передать изображение, сгенерированное питоном, обратно в набор настроек laravel?

1 Ответ

0 голосов
/ 25 марта 2019

Решением было закодировать файл в base64 на стороне Python и распечатать его в оболочке, и со стороны ларавеллы расшифруйте его из base64. Вот коды клавиш:

Python3:

import base64
from io import BytesIO

from PIL import Image, ImageDraw
background = Image.new('RGBA', (500, 500))
d = ImageDraw.Draw(background)
d.text((10, 10), "Hello World", fill=(255, 255, 0))
imgByteArr = BytesIO()
background.save(imgByteArr, format='PNG')
imgByteArr = base64.b64encode(imgByteArr.getvalue())
print(imgByteArr)

Laravel:

public function newImage()
{
    $process = new Process('python3 /path-to-script/shell.py');
    $process->run();
    if ( ! $process->isSuccessful())
    {
        return abort(404);
    }

    return response(base64_decode(str_replace_first('b', '', $process->getOutput())))->header('Content-Type', 'image/png');

}
...