在PHP脚本中显示PIL图像

时间:2017-05-18 18:45:43

标签: php python image curl python-imaging-library

我有一个生成PIL图像的python脚本。我需要使用curl将这张图片发送到php脚本。我发现只有一种方法可以做到这一点:将图像转换为字节数组并将其作为文本返回:

# image is a PIL object
from PIL import Image
import io, json

image = Image.open('test.png', mode = 'r')
img_io = io.BytesIO()
image.save(img_io, format='PNG')
byte_array = img_io.getvalue()
print(json({'image':byte_array}))

接下来我解码这个字节数组并用这个php代码显示图像:

$result = curl_exec($ch);
$result = json_decode($result, true);
$image = $result['image']
echo "<img src='data:image/png;base64, $image' />"

然而,我不知道那是好的。

问题是:是否有一种更正确的方法可以在php中使用curl获取PIL图像?

1 个答案:

答案 0 :(得分:0)

创建路由

@app.route('/image/', methods=['GET'])
def image():
    return create_image('test.png')

创建图片

def create_image(parameter):
    image = Image.open(parameter, mode = 'r')
    img_io = io.BytesIO()
    merge.save(img_io, 'PNG', quality=100)
    img_io.seek(0)
    return send_file(img_io, mimetype='image/png')

在你想要的地方展示你的图片

$result = curl_exec($ch);
$result = json_decode($result, true);
$image = $result['image']
echo "<img src='http://YOUR_FLASK_IP:5000/image/' />"