base64的图片编码,python如何转存为一张图?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了base64的图片编码,python如何转存为一张图?相关的知识,希望对你有一定的参考价值。

客户端已将图片转存为base64编码并传送到了server端,server如何将 base64 编码转存为一张实体图呢? 所用语言 python,框架web.py

参考技术A import base64

使用b64decode解码追问

没有看明白我的问题,解码后如何保存成 一张比如 xxxx.jpg 图片

追答# -*- coding: utf-8 -*-
"""
Created on Thu Apr 25 09:17:21 2013
@author: Leniy
"""
import os, base64
leniystr = "iVBORw0KGgoAAAANSUhEUgAAACwAAAAOCAYAAABU4P48AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAGYktHRAD/AP8A/6C9p5MAAAF6SURBVEhL1ZY9coMwEIWfchZIkckJxAmAhoojiNJu3KV0lwZK+xRU6ATmBJkUEXdRVj8MmGFsk9ge+5vReFlb2of0diymCTwRL0CHKmJgjKGQPnszJAqqw1iEqvOphZDgexJjRweq9QGrwKcWcmfB/+cCwf0xDiMan2dXIZp870ZBM6ecsIQs7Lzx2rLwa428ekawKZBgTxEvFbQqwSlu1+G830VDx61Qmh/RrO0So8YZBH2060//ohK1KUyILHYBcVqwrK1YgxHJwjVa//z1MxUj0OzMwgFe311mGTEyo5gq1kZxX5uX2Ax6L/QwTVK2WYZxmHYNf0Pow78SO8XYk2Lpt5fnKW3BwGWC228oH8756mrEG2enfYLEbS/y9HhjTgvuF6DDSaIKHTXYdsZX1yNAmtuCDp5jovfcDgdYHTQa1w0IrYc5SqVh7XoDgjS3jW0QH6sjO1jMX/NDoUpNgum6IHTjU2MeSLDSZD9zr7FDzKklnuzyA/wCcpDKoLig94YAAAAASUVORK5CYII="
imgData = base64.b64decode(leniystr)
leniyimg = open(\'imgout.png\',\'wb\')
leniyimg.write(imgData)
leniyimg.close()



imgData = base64.b64encode(yourstring)

那么imgData就是图片的二进制编码。

然后open('img.png','wb')写入就可以了

本回答被提问者采纳

canvas如何转存为图片?

  有时候,我们绘制好的canvas想存储为本地图片,该怎么做呢?canvas提供了一个重要的方法toDataURL(),这个方法能把画布里的图案转变成base64编码格式的png或者其他格式的图片(根据你传入的mine类型的参数),然后返回 Data URL数据。接下来我们看具体是怎么实现的。

  

  html页面一个canvas画布:


<canvas id="canvas"></canvas>

<button class="button-balanced" id="save">save</button>

<br />

<a href="" download="canvas_love.png" id="save_href">

    <img id="save_img"/>

</a>


  对应的js代码实现:


var c=document.getElementById("canvas");

function drawLove(canvas){

    let ctx = canvas.getContext("2d");

    ctx.beginPath();

    ctx.fillStyle="#E992B9";

    ctx.moveTo(75,40);

    ctx.bezierCurveTo(75,37,70,25,50,25);

    ctx.bezierCurveTo(20,25,20,62.5,20,62.5);

    ctx.bezierCurveTo(20,80,40,102,75,120);

    ctx.bezierCurveTo(110,102,130,80,130,62.5);

    ctx.bezierCurveTo(130,62.5,130,25,100,25);

    ctx.bezierCurveTo(85,25,75,37,75,40);

    ctx.fill();

}

drawLove(c); 


var butSave = document.getElementById("save");

butSave.onclick=function(){

    var svaeHref = document.getElementById("save_href");

    /*

     * 传入对应想要保存的图片格式的mime类型

     * 常见:image/png,image/gif,image/jpg,image/jpeg

     */

    var img = document.getElementById("save_img");

    var tempSrc = canvas.toDataURL("image/png");

    svaeHref.href=tempSrc; 

    img.src=tempSrc;  

}; 

  点击save按钮后,显示图片,点击图片即可弹出下载对话框。




获取更多HTML5,点击阅读原文

以上是关于base64的图片编码,python如何转存为一张图?的主要内容,如果未能解决你的问题,请参考以下文章

怎么得到图片的base64编码 - 技术问答

canvas如何转存为图片?

怎么得到图片的base64编码 - 技术问答

python 3.x base64编码的图片文件如何加载

图片采用base64压缩,可以以字符串的形式传送base64给服务端转存为图片

为啥要用base64编码来保存图片?