Python 生成二維碼且html的img標簽顯示Base64的圖片+下載Base64圖片

Python 生成二維碼圖片數(shù)據(jù)

使用qrcode模塊來創(chuàng)建二維碼禾唁。https://github.com/lincolnloop/python-qrcode這里源碼。

import qrcode
import StringIO
import base64
def make_code(text):
    qr = qrcode.QRCode(
        version=5,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=8,
        border=4
    )
    qr.add_data(text)
    qr.make(fit=True)
    img = qr.make_image()
    img_buffer = StringIO.StringIO()
    img.save(img_buffer, 'png')
    res = img_buffer.getvalue()
    img_buffer.close()
    return base64.b64encode(res)

說明:

  1. 第5~10行創(chuàng)建 qrcode 二維碼對象并設置參數(shù)双仍。參數(shù)說明如下:
字符串比較運算符 說明
version 值為1~40的整數(shù),控制二維碼的大凶莱浴(最小值是1朱沃,是個12×12的矩陣)。 如果想讓程序自動確定茅诱,將值設置為 None 并使用 fit 參數(shù)即可
error_correction 容錯率:ERROR_CORRECT_L大約7%或更少的錯誤能被糾正逗物;ERROR_CORRECT_M(默認):大約15%或更少的錯誤能被糾正;ROR_CORRECT_H:大約30%或更少的錯誤能被糾正瑟俭。
box_size 控制二維碼中每個小格子包含的像素數(shù)
border 控制邊框(二維碼與圖片邊界的距離)包含的格子數(shù)(默認為4翎卓,是相關標準規(guī)定的最小值)
  1. 第11行,填入二維碼中的內容
  2. 第12行摆寄,將數(shù)據(jù)編譯為QR碼數(shù)組失暴。
  3. 第13行,根據(jù)QR碼數(shù)據(jù)制作圖像微饥。
  4. 第14~17行锐帜,將圖片保存到緩存
  5. 最后轉為 base64返回

html中顯示 Base64類型圖片

<a id="temporary"></a>
<img src="data:image/png;base64,數(shù)據(jù)" id="register_qr" />
<button type="button" onclick="down()">下載</button>

png 可以換成其他圖片后綴

JavaScript 下載base64圖片

// 根據(jù)圖片生成畫布
function convertImageToCanvas(image) {
    var canvas = document.createElement("canvas");
    canvas.width = image.width;
    canvas.height = image.height;
    canvas.getContext("2d").drawImage(image, 0, 0);
    return canvas;
}

// 下載圖片
function down() {
    var sampleImage = document.getElementById("register_qr"),
    canvas = convertImageToCanvas(sampleImage);
    url = canvas.toDataURL("image/png"); //PNG格式
    //獲取a 元素將下載內容填入 a 標簽中的 href 后模擬點擊下載圖片
    var triggerDownload = $("#temporary").attr("href", url).attr("download", "二維碼.png");
    triggerDownload[0].click();
    triggerDownload.remove();
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市畜号,隨后出現(xiàn)的幾起案子缴阎,更是在濱河造成了極大的恐慌,老刑警劉巖简软,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛮拔,死亡現(xiàn)場離奇詭異述暂,居然都是意外死亡,警方通過查閱死者的電腦和手機建炫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門畦韭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肛跌,你說我怎么就攤上這事艺配。” “怎么了衍慎?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵转唉,是天一觀的道長。 經常有香客問我稳捆,道長赠法,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任乔夯,我火速辦了婚禮砖织,結果婚禮上,老公的妹妹穿的比我還像新娘末荐。我一直安慰自己侧纯,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布甲脏。 她就那樣靜靜地躺著眶熬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剃幌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天晾浴,我揣著相機與錄音负乡,去河邊找鬼。 笑死脊凰,一個胖子當著我的面吹牛抖棘,可吹牛的內容都是我干的。 我是一名探鬼主播狸涌,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼切省,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了帕胆?” 一聲冷哼從身側響起朝捆,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎懒豹,沒想到半個月后芙盘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驯用,經...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年儒老,在試婚紗的時候發(fā)現(xiàn)自己被綠了蝴乔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡驮樊,死狀恐怖薇正,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情囚衔,我是刑警寧澤挖腰,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站佳魔,受9級特大地震影響曙聂,放射性物質發(fā)生泄漏。R本人自食惡果不足惜鞠鲜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一宁脊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贤姆,春花似錦榆苞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至碧信,卻和暖如春赊琳,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背砰碴。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工躏筏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人呈枉。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓趁尼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親猖辫。 傳聞我的和親對象是個殘疾皇子酥泞,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內容

  • 新時代,人們有新的追求啃憎,自然而然會有新發(fā)明的誕生芝囤。去年,在“一帶一路”國際合作高峰論壇舉行期間,20國青年投票選出...
    愛碼小士閱讀 620評論 0 5
  • 作者:銀月歆夢 人的一生凡人,有很多回憶讓我們久久不能忘懷名党,無論是讓人痛苦悲傷的、幸改又幔快樂的...
    銀月歆夢閱讀 468評論 2 1
  • 當你發(fā)現(xiàn)路旁的野花已枯萎了好幾朵传睹;當你發(fā)現(xiàn)樹上的果實早已沉甸甸;當你走在街上岸晦,發(fā)現(xiàn)吹來的風已不再是熱的欧啤;...
    夏聽閱讀 234評論 0 5
  • 曼聯(lián)主場2:0戰(zhàn)勝了客場擊敗自己的對手哈斯菲爾德 桑切斯本場比賽表現(xiàn)優(yōu)異 收獲了代表曼聯(lián)的首例進球 盡管智利人的點...
    英超球霸閱讀 158評論 0 0