QRコードと画像を組み合わせてQRコード風の芸術的な二次元バーコード画像を作成する CuteR / ArtCoder / MyQR / Amazing-QR / Quick QR Art
CuteR
https://github.com/chinuno-usami/CuteR
pip install CuteR
CuteR -c 10 -e H -o sample_output.png -v 10 sample_input.png http://www.chinuno.com
CuteR -C -r 100 50 100 188 sample_input.png http://www.chinuno.com #colourful mode
# -*- coding: utf-8 -*-
from PIL import Image
from PIL import ImageEnhance
from PIL import ImageSequence
import qrcode
from CuteR import CuteR as cr
def generate_qr_code(data, image,filename,mask_ptn):
img = image
txt = data
output = filename
ec = qrcode.constants.ERROR_CORRECT_H
ver = 5
cont = 1.0
bri = 1.0
colr = True
# colr = False
pixelate = True
#
pixelate = False
if colr :
rgba = (0,0,0,255)
else:
rgba = (0,0,0,255)
output.encode('sjis', errors='ignore').decode('sjis')
# frames = cr.produce(txt,img,ver,ec,bri, cont , colr,rgba, pixelate, mask_ptn)
frames = cr.produce(txt,img,ver,ec,bri, cont , colr,rgba, pixelate)
if len(frames) == 1 or output.upper()[-3:] != "GIF":
frames[0].save(output)
elif len(frames) > 1:
frames[0].save(output,save_all=True,append_images=frames[1:],duration=100,optimize=True)
def read_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file: # ファイルをUTF-8エンコーディングで読み込み
return file.readlines()
def main():
file_path = "b.txt" # 入力ファイル名を固定化
lines = read_file(file_path)
for index, line in enumerate(lines):
line = line.strip()
if line:
#
input_image = f"input_folder/"+(str(index+1).zfill(2))+f".png" # 出力ファイル名を固定化
# for ix in range(8):
for ix in range(1):
#
output_filename = f"output_folder/"+(str(index+1).zfill(2))+f"-"+line+f"-"+str(ix)+f".png" # 出力ファイル名を固定化
generate_qr_code(line,input_image, output_filename,ix)
print(f"QR code '{output_filename}' generated successfully!")
if __name__ == '__main__':
main()
マスクパターンを指定したい場合
読み込めない場合もあるので8パターン作れるようにします
CuteR.pyこれを変更します。日本語の文字化けも対応します
def produce(txt,img,ver=5,err_crt = qrcode.constants.ERROR_CORRECT_H,bri = 1.0, cont = 1.0,\
colourful = False, rgba = (0,0,0,255),pixelate = False, mask_ptn=None):
if type(img) is Image.Image:
pass
elif type(img) is str:
img = Image.open(img)
else:
return []
frames = [produce_impl(txt,frame.copy(),ver,err_crt,bri,cont,colourful,rgba,pixelate,mask_ptn) for frame in ImageSequence.Iterator(img)]
return frames
def produce_impl(txt,img,ver=5,err_crt = qrcode.constants.ERROR_CORRECT_H,bri = 1.0, cont = 1.0,\
colourful = False, rgba = (0,0,0,255),pixelate = False, mask_ptn=None):
qr = qrcode.QRCode(version = ver,error_correction = err_crt,box_size=3, mask_pattern=mask_ptn)
qr.add_data(txt.encode('utf-8')) # 日本語文字列をUTF-8エンコーディングで処理
以下同じ
Amazing-QR // MyQR
pip install amzqr
amzqr Words
[-v {1,2,3,…,40}]
[-l {L,M,Q,H}]
[-n output-filename]
[-d output-directory]
[-p picture_file]
[-c]
[-con contrast]
[-bri brightness]
amzqr https://github.com -p github.jpg [-c] -con 1.5 -bri 1.6
日本語は対応されていません
ArtCoder
https://github.com/SwordHolderSH/ArtCoder
git clone https://github.com/SwordHolderSH/ArtCoder
cd ArtCoder
style_img_path 模様
content_img_path メイン画像
code_img_path QRコードを準備してから
python main.py -style_img_path ./xxxx/xxx.jpg --content_img_path ./xxxx/xxx.jpg --code_img_path ./xxxx/xxx.jpg --output_dir ./xxxx/
GPUがないパソコンでCPUだけで動かす時
Artcoder.py
vgg = Vgg16(requires_grad=False).cpu() # vgg16 model
ss_layer = SSlayer(requires_grad=False).cpu()
モデルを自動的にダウンロードします。GPUがないと時間がかかります
たくさんのQRコードを読み込む方法
画像が入った二次元バーコードは読み込めない場合があります。マスクパターンを色々試した時 読むことができる2次元バーコードを調べたい時に使うことができます
https://memo.eightban.com/python/qrread
Quick QR Art
無料の QR コード AI アート ジェネレーター
Stable Diffusion 二次元バーコード風な画像を作成する
https://memo.eightban.com/stable-diffusion/stable-diffusion-diffusers-qr
美钥二维码
色々な形の二次元バーコードを作成するサイト
QR Codes (Classic )
https://quickqr.art/#features
「QRコードは(株)デンソーウェーブの登録商標です」
ディスカッション
コメント一覧
まだ、コメントがありません