flo*_*ian 6 python base64 image pillow
我用Python生成了一个图像,我需要将此Pil Image转换为Base64,而不将此图像保存到任何文件夹中...
我有一些数据,我得到了带有以下行的 RGB img:
img = Image.fromarray(data,'RGB')
Run Code Online (Sandbox Code Playgroud)
将此 PIL 转换为 base64 的简单方法是什么?(我无法打开文件图像,因为我不能保存 img)?
感谢您的帮助
使用 Node JS,我可以通过以下几行获得正确的 base64:
pythonShell= require("python-shell");
app.post('/index/gen/',urlencodedParser, function (req,res){
pythonShell.run('minigen.py', function (err, results) {
if (err) throw err;
var img = base64img.base64Sync('./images/miniature.jpg');
res.send(img); });
})
Run Code Online (Sandbox Code Playgroud)
但是如果我使用NodeJS,我必须保存文件......
这是从图像生成矩阵的代码,您不需要知道数据中的内容;)
image = Image.open("./carte/"+fichier)
image = image.resize((400,400),Image.ANTIALIAS)
w,h = image.size
tab = numpy.array(image)
data = numpy.zeros((h, w, 3), dtype=numpy.uint8)
Run Code Online (Sandbox Code Playgroud)
我找到了解决方案。希望这可以帮助 !
img = Image.fromarray(data, 'RGB') #Crée une image à partir de la matrice
buffer = BytesIO()
img.save(buffer,format="JPEG") #Enregistre l'image dans le buffer
myimage = buffer.getvalue()
print "data:image/jpeg;base64,"+base64.b64encode(myimage)
Run Code Online (Sandbox Code Playgroud)
小智 8
@florian 的回答对我帮助很大,但 base64.b64encode(img_byte) 返回了字节,因此我需要在连接之前将其解码为字符串(使用 python 3.6):
def img_to_base64_str(self, img):
buffered = BytesIO()
img.save(buffered, format="PNG")
buffered.seek(0)
img_byte = buffered.getvalue()
img_str = "data:image/png;base64," + base64.b64encode(img_byte).decode()
Run Code Online (Sandbox Code Playgroud)
您可以base64像这样使用库:
import base64
base64.b64encode(img.tobytes())
Run Code Online (Sandbox Code Playgroud)
参见对象的tobytes()方法Image。
| 归档时间: |
|
| 查看次数: |
14030 次 |
| 最近记录: |