
暇なコーヒー屋は、プログラムでQRレンガを積む仕事を始めた。
ツキシマでーす。
一応コーヒー屋なんですが、暇そうにしているおかげかコーヒー以外の仕事もそこそこ増えてきました。

この前作ったワンちゃん名刺は、非常に喜んでもらえました。
前の記事で書いた犬名刺ですが、最終的にいい感じのができました。


納品動画。
ということで、次は高級下着屋さんの名刺を作ることになりました。
いつもお世話になってる Primavera miu さんからも名刺のオーダーがあったので、あんまり下着のことは分かりませんが作ってみましょう。
前に頼んだ名刺業者がセンス皆無だったから、いい感じに作ってみて!くらいのオーダーでした。(なかなかプレッシャーのかかるオーダー・・・)

試しに AI で作ると、どうにもいやらしくなる。
まずは AI ベースで試作して女性に見てもらうと、なかなかの不評でした。

どうにも、ラブドールっぽさがプンプンするのでダメとのこと。なるほど。。
本題:せっかくなので、自前のプログラムを作ろう。
下着屋さんなので「下着の名刺」っていうのは短絡的な気もしますし、うちに頼むくらいなので、もう普通の名刺はたくさん持っててその上で個性や新しさを求められている気もします。
・・・そういえば、お店はいい感じのレンガの建物だったかな。
プリマさんの店前。
アイデア:レンガを積んでQRコードを作ろう。
いい感じの赤っぽいレンガの壁のお店だったので、レンガで QR コードを作ってみましょう。まずはフリー素材のレンガ画像を用意します。


最近よく使う Anthony's QR Toolkit で QR コードを作ります。ちょっと上方向に多めにマージンを取って、黒多め+大きめにしました。

レンガの壁を積むプログラムを書いちゃう。
ハイパー名刺クリエイターなので、MATLAB を使って数行で書いちゃいましょう。上の 1125x725 (px) の白黒QR画像は 25ピクセルで1エリアなので、(1125,725)/25 = 45x29 (px) に縮小すれば 0/1 のデータ列になります。
あとは偶数段と奇数段を交互に配置したりするくらいですね。
%% Read QR raw data
QR = imread('prima_longtop_QR.png');
QR_BW = imbinarize(QR);
QR_BW = ~QR_BW(:,:,1);
%% Edit QR Data
QR_Raw = double(imresize(QR_BW,1/25)) + 1;
QR_Raw(:,2:2:end) = QR_Raw(:,2:2:end) + 2;
rep = [3 4 1 2];
QR_Raw(2:2:end,:) = rep(QR_Raw(2:2:end,:));
%% Brick image
Brick_r = imread('Brick_R.png');
Brick_k = imread('Brick_K.png');
Brick{1} = imcrop(Brick_r,[425,72,140,67]);
Brick{2} = imcrop(Brick_k,[425,72,140,67]);
Brick{3} = imcrop(Brick_r,[566,72,140,67]);
Brick{4} = imcrop(Brick_k,[566,72,140,67]);
outsize = [30 30];
Brick = cellfun(@(x) imresize(x,outsize),Brick,'UniformOutput',false);
%% OutImage
wall = uint8(cell2mat(Brick(QR_Raw)));
imshow(wall)
imwrite(wall,'Brick_QR.png')
プログラムの実行結果 ↓↓

これをベースに、窓とか猫とかを配置すればいいですね。

窓とか屋根とかの細かい造形は忘れてしまったので、もうちょっと本物っぽく近づけてから提案しようかな。
まとめ:こっそりとデジタル情報を忍ばせるのが楽しい。
いかに気付かれないように情報を忍ばせるかっていうのを考えてデザインするのは楽しいですね。ということで、他にもこんな感じの名刺とかノベルティとかを作りたい人がいたら、コーヒーでも飲みながら教えてね。(Note の問い合わせでもいいよ。)
あと、今からレンガ積むよって人がいたら、リアルにQRコード積みをすると面白いかもしれないですね。
