python製作含二維碼及表格的png文件

無纔開發這些功能,只好用別人現成的。生成的png文件,用於激光雕刻機制作銘牌。網上搜了一下,有這麼幾個插件,qrcode, drawSvg和pygal可能有用。

參考網頁:

發現多慮了,使用簡單粗暴的畫法,來個幾何圖形就可以了。參考如下頁面

安裝插件

先安裝qrcode,自帶 pillow

$  sudo pip3 install qrcode[pil]

實驗一下生成qrcode的svg文件,

$ qr --factory=svg "我愛我的祖國!" > test.svg
$ firefox test.svg

果然瀏覽器內看到了,還能掃描出來。換個python版本的,能否生成 svg文件呢?

import qrcode
import qrcode.image.svg

if method == 'basic':
    # Simple factory, just a set of rects.
    factory = qrcode.image.svg.SvgImage
elif method == 'fragment':
    # Fragment factory (also just a set of rects)
    factory = qrcode.image.svg.SvgFragmentImage
else:
    # Combined path factory, fixes white space that may occur when zooming
    factory = qrcode.image.svg.SvgPathImage

img = qrcode.make('Some data here', image_factory=factory)
$  sudo pip3 install lxml

運行代碼

下面這段代碼來自,https://www.cnblogs.com/lab-zj/p/13321469.html

import qrcode
from PIL import Image
import matplotlib.pyplot as plt


def getQRcode(data, file_name):
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=5,
        border=4,
    )

    # 添加數據
    qr.add_data(data)
    # 填充數據
    qr.make(fit=True)
    # 生成圖片
    img = qr.make_image(fill_color="green", back_color="white")

    # 添加logo,打開logo照片
    icon = Image.open("1.jpg")
    # 獲取圖片的寬高
    img_w, img_h = img.size
    # 參數設置logo的大小
    factor = 6
    size_w = int(img_w / factor)
    size_h = int(img_h / factor)
    icon_w, icon_h = icon.size
    if icon_w > size_w:
        icon_w = size_w
    if icon_h > size_h:
        icon_h = size_h
    # 重新設置logo的尺寸
    icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)
    # 得到畫圖的x,y座標,居中顯示
    w = int((img_w - icon_w) / 2)
    h = int((img_h - icon_h) / 2)
    # 黏貼logo照
    img.paste(icon, (w, h), mask=None)
    # 終端顯示圖片
    plt.imshow(img)
    plt.show()
    # 保存img
    img.save(file_name)
    return img


if __name__ == '__main__':
    getQRcode("世情薄,人情惡,雨送黃昏花易落。曉風乾,淚痕殘,欲箋心事,獨語斜闌。"
              "難,難,難!人成各,今非昨,病魂常似鞦韆索。角聲寒,夜闌珊,怕人尋問,咽淚裝歡。瞞,瞞,瞞!", 'my.png')

未完待續。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章