python 生成待圖片的二維碼代碼


imge.show()在Liunx下可能不行。windows

ps:標準版本的show()方法不是頗有效率,由於它先將圖像保存爲一個臨時文件,而後使用xv進行顯示。若是沒有安裝xv,該函數甚至不能工做。可是該方法很是便於debug和test。(windows中應該調用默認圖片查看器打開)函數


代碼以下:spa

#-*-coding:utf-8-*-.net

#這是一個二維碼的生成代碼debug

import qrcodecode

import oshtm

from PIL import Image圖片

import Pillowutf-8

print()get

class QrCode():

    def __init__(self, version=8,

                 error_correction=qrcode.constants.ERROR_CORRECT_H,

                 box_size=4,

                 border=1,

                 save_path_name="二維碼",

                 cont='您的二維碼信息沒有生成,請重試',

                 path='',

                 logo=''

                 ):

        self.version=version #值範圍爲1~40,控制二維碼的大小, None 並使用 fit 參數便可

        self.error_correction=error_correction#糾錯能力 _L約7%,_M約15%,_H約30%

        self.box_size=box_size#控制二維碼中每一個小個子包含的像素數

        self.border=border#邊框值,最小爲4

        self.name=save_path_name

        self.cont=cont

        self.save_path_name=save_path_name

        self.logo = logo

        print ("我已經有了二維碼的屬性")

             

        

    def Save(self):

        qr = qrcode.QRCode(  

              version=self.version,     

              error_correction=self.error_correction,     

              box_size=self.box_size,     

              border=self.border, 

                             ) 

        qr.add_data(self.cont)

        qr.make(fit=True)  

        img = qr.make_image()

        img = img.convert('RGBA')

        

        icon = Image.open(self.logo)

        img_w, img_h = img.size

        factor = 1/4

        size_w,size_h = (int(img_w*factor),int(img_h*factor))

        icon = icon.resize((size_w,size_h), Image.ANTIALIAS)

        w,h = (int(img_w*(1-factor)/2),int(img_h*(1-factor)/2))

        icon =icon.convert('RGBA')

        img.paste(icon,(w,h),icon)

        

        img.save(self.save_path_name)

        img.show()

        

        #print ("二維碼已經生成,存在當前目錄下")

        #image=Image.open(self.name+'.png')

        #image.show()

        #os.system("explorer.exe %s" %os.getcwd())  打開當前文件夾,win下使用   

        



a=QrCode(cont="http://www.jb51.net/article/58579.htm",save_path_name='/home/fuhan/fuhan.jpg',logo='/home/fuhan/a.jpg')

a.Save()

相關文章
相關標籤/搜索