今回はインスタ風のQRコードを作成する
方法についてです。
解説動画はこちら
通常のQRコード

普通のQRコードはこんな感じです。
四角い黒で表現され、お堅い感じです。
インスタ風は、丸みがあり少しポップな色味です。
これを再現するには通常のPythonライブラリでは
難しいようでした。
インスタ風QRコードを再現する
ということで、自作することにしました。
Google Colabで実行できるコードを作成しました。
ライブラリのインストール
実行にはqrcodeライブラリが必要なのでインストールしましょう。
QRコード作成コード
一旦QRコードを作成して画像化し
それを加工する内容になっています。
色は pink で指定していますが
変えたい場合はコードのRGB値を変えて貰えば変わります。
実際に使ってみましょう

すごくpopな形のQRコードが作成できました。
これを配布したら、オシャレですね
今回はインスタ風の
QRコードを作成するコードについてでした
色々試して遊んでみてください。
それでは。
方法についてです。
解説動画はこちら
通常のQRコード

普通のQRコードはこんな感じです。
四角い黒で表現され、お堅い感じです。
インスタ風は、丸みがあり少しポップな色味です。
これを再現するには通常のPythonライブラリでは
難しいようでした。
インスタ風QRコードを再現する
ということで、自作することにしました。
Google Colabで実行できるコードを作成しました。
ライブラリのインストール
実行にはqrcodeライブラリが必要なのでインストールしましょう。
pip install qrcode
QRコード作成コード
import qrcode from PIL import Image, ImageDraw def create_round_qr(data, file_path): # QRコードを生成 qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_H, box_size=10, border=4, ) qr.add_data(data) qr.make(fit=True) # QRコードをイメージに変換 img = qr.make_image(fill='black', back_color='white').convert('RGB') pix = img.load() # 新しいイメージを作成 width, height = img.size round_img = Image.new('RGB', (width, height), 'white') draw = ImageDraw.Draw(round_img) # 各ピクセルをチェックして形状を描画 cell_size = 10 # box_sizeと同じにする pink = (255, 105, 180) white = (255, 255, 255) # 描画開始位置を計算(余白を除く) start_pos = cell_size * 4 # 形状を変換 for y in range(start_pos, height, cell_size): for x in range(start_pos, width, cell_size): if pix[x, y] == (0, 0, 0): draw.ellipse((x, y, x + cell_size, y + cell_size), fill=pink) # 隅の四角 corner_size = cell_size * 7 for dx, dy in [(0, 0), (width - corner_size - start_pos * 2, 0), (0, height - corner_size - start_pos * 2)]: x0, y0 = start_pos + dx, start_pos + dy x1, y1 = x0 + corner_size, y0 + corner_size draw.rounded_rectangle((x0, y0, x1, y1), radius=0, fill=white) draw.rounded_rectangle((x0, y0, x1, y1), radius=15, fill=pink) draw.rounded_rectangle((x0 + 1 * cell_size, y0 + 1 * cell_size, x1 - 1 * cell_size, y1 - 1 * cell_size), radius=7, fill=white) draw.rounded_rectangle((x0 + 2 * cell_size, y0 + 2 * cell_size, x1 - 2 * cell_size, y1 - 2 * cell_size), radius=5, fill=pink) # 保存 round_img.save(file_path)
一旦QRコードを作成して画像化し
それを加工する内容になっています。
色は pink で指定していますが
変えたい場合はコードのRGB値を変えて貰えば変わります。
実際に使ってみましょう
from PIL import Image from IPython.display import display # QRコードを作成(URL , ファイルパス) create_round_qr("http://www.otupy.net/", "insta.png") # 画像を読み込む img = Image.open("insta.png") # 画像を表示 display(img)

すごくpopな形のQRコードが作成できました。
これを配布したら、オシャレですね
今回はインスタ風の
QRコードを作成するコードについてでした
色々試して遊んでみてください。
それでは。
コメントする