1つ目のQRコード画像のみテキスト表示の前に□が入ってしまうので取り除きたい
解決したいこと
1つ目のQRコード画像のみテキスト表示の前に□が入ってしまうので取り除きたい
<プログラム概要>
PythonでCSVファイルを読み、行数分のQRコード画像を作り、QRコードの下に、テキストを表示するプログラムを作成しました。
次の投稿を参考にさせていただきました。
ありがとうございます。
Pythonによる文字表示付きQRコードの大量生成
https://qiita.com/Kosuke_Matsui/items/abc379e4486eeacd283e
二つ目からは□は出なくて望みどおりです
該当するソースコード
#画像に余白を付ける関数部分
def add_margin(pil_img, top, right, bottom, left, color):
width, height = pil_img.size
new_width = width + right + left
new_height = height + top + bottom
result = Image.new(pil_img.mode, (new_width, new_height), color)
result.paste(pil_img, (left, top))
return result
#QRコードを保存している部分
with open(filename,encoding='utf-8',newline='') as f:
for row in f.read().splitlines():
columns = row.rstrip().split(',') # 1カラム目を取り出して画像を保存するときのファイル名にする
file_savename = dirname + '\\' + columns[0] + '.png'
text = columns[0] # 1カラム目を取り出して画像の下にテキスト表示をする
# QRコード画像データ生成
img = qrcode.make(row)
#下方向に余白を付ける ここから2021/08/25追加
img_new = add_margin(img, 0, 0, 100, 0, '#ffffff')
#テキストを表示する
draw = ImageDraw.Draw(img_new)
font = ImageFont.truetype("C:\\Windows\\Fonts\\malgun.ttf", 55)
draw.text((50, 400), text, font=font, fill='#000000')
#画像ファイルとして保存
img_new.save(file_savename)
自分で試したこと
print(text)
として実行してみると
RUN1
RUN2
RUN3
・・・
となり、RUN1の前に□は現れないので
どうして一つ目の画像だけ□が表示されるのか
わからなくて行き詰まっております。
何かアドバイスがありましたら
どうぞよろしくお願いいたします。<(_ _)>