Решением было закодировать файл в 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');
}