Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
QRコードを学んで遊ぼう / php-study-177
Search
meihei
July 30, 2025
Technology
0
45
QRコードを学んで遊ぼう / php-study-177
meihei
July 30, 2025
Tweet
Share
More Decks by meihei
See All by meihei
改めて学ぶ Trait の使い方 / phpcon odawara 2025
meihei3
1
930
List とは何か? / PHPerKaigi 2025
meihei3
0
1.2k
WebアプリケーションにおけるPDOの使い方入門 / phpcon odawara 2024
meihei3
3
2k
PHPerライフをChrome拡張開発でちょっと便利に / PR TIMES x DMM.com
meihei3
1
390
ファイルを選択してZIPダウンロードする機能ってどうやって作るの? / phpcondo 2023
meihei3
1
660
New Relic CodeStreamを 使って、エラーを 加速的迅速に改修しよう! #NRUG Vol.8
meihei3
0
370
PHP8.2から見る、2つの配列 / PHP Conference Japan 2023
meihei3
0
2.1k
良いコードを書く 〜10年後のPR TIMESを作る〜 / LT会 in #PRTIMES_HACKATHON 2023
meihei3
2
250
月に一度の大規模リファクタリングでレガシーコードと向き合う取り組み / PHP Conference Fukuoka 2023
meihei3
4
1.1k
Other Decks in Technology
See All in Technology
公開初日に個人環境で試した Gemini CLI 体験記など / Gemini CLI実験レポート
you
PRO
3
1.1k
LLMでAI-OCR、実際どうなの? / llm_ai_ocr_layerx_bet_ai_day_lt
sbrf248
0
360
Wasmで社内ツールを作って配布しよう
askua
0
160
[TechNight #91] Oracle Database 最新パフォーマンス分析手法
oracle4engineer
PRO
3
290
帳票構造化タスクにおけるLLMファインチューニングの性能評価
yosukeyoshida
1
180
みんなのSRE 〜チーム全員でのSRE活動にするための4つの取り組み〜
kakehashi
PRO
2
100
サイバー攻撃のシミュレーション:攻撃者の視点からみる防御のむずかしさ!AWSで試してみよう / 20250423 Kumiko Hemmi
shift_evolve
PRO
1
190
ML Pipelineの開発と運用を OpenTelemetryで繋ぐ @ OpenTelemetry Meetup 2025-07
getty708
0
330
AI駆動開発 with MixLeap Study【大阪支部 #3】
lycorptech_jp
PRO
0
280
Gemini in Android Studio - Google I/O Bangkok '25
akexorcist
0
100
Mambaで物体検出 完全に理解した
shirarei24
2
100
「AI駆動開発」のボトルネック『言語化』を効率化するには
taniiicom
1
230
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
The Pragmatic Product Professional
lauravandoore
35
6.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Speed Design
sergeychernyshev
32
1k
Rails Girls Zürich Keynote
gr2m
95
14k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Writing Fast Ruby
sferik
628
62k
Transcript
QRコードを学んで遊ぼう 第177回 PHP勉強会@東京
#phpcon_odawara #boko 自己紹介 meihei | Yohei Ema BASE株式会社 BASE /
Product Dev / Feature Dev 1 X: @app1e_s mixi2: @meihei2 GitHub: @meihei3
None
None
意外と知らないことが多い!!
アジェンダ 1. QRコードって何なんだ!? 2. 誤り訂正符号なにそれ? 3. ロゴ重ねQRコードを作ってみた
QRコードって何なんだ!?
QRコードとは • 1994年にデンソーウェーブが開発した2次元コード ◦ QRコードは株式会社デンソーウェーブの登録商標です ←こういうの 地下鉄での活用事例 https://www.youtube.com/watch?v=I27vrvGgMDQ
何が面白いの? • 一次元コードに比べ情報を多く格納できる • どの角度からも高速で読み取れる • 誤り訂正機能がある 参照 https://time-space.kddi.com/mobile/20190425/2624.html
全方向高速読み取り • 3コーナーに配置されるファインダパターンによって 安定した高速読み取りができる • どの角度からも黒1:白1:黒3:白1:黒1 という黒白比になる 参照 https://www.ipsj.or.jp/dp/contents/publication/51/S1303-S05.html
全方向高速読み取り 黒1:白1:黒3:白1:黒1
誤り訂正機能 • データ符号語をブロックに分割し、各ブロックに対 してリード・ソロモン (RS) 符号を適用 • インターリーブして、連続欠損を分散・訂正能力を 最大化 •
1 ブロックあたり最大で{誤り訂正パリティ}/2語ま での誤りを完全に直せる
?
誤り訂正符号なにそれ?
RS 符号の説明(超簡略化) • データ符号語をブロックに分割し、各ブロックに対 してリード・ソロモン (RS) 符号を適用
RS 符号の説明(超簡略化) • データ符号語をブロックに分割し、各ブロックに対 してリード・ソロモン (RS) 符号を適用
インターリーブする • 1byte(1符号語)ごとに交互に並べる • 連続でデータが掛けることを防ぐ ◦ 現実世界では、データが欠損する場所が集中するため
データの誤りを訂正可能 • 1 ブロックあたり最大で{誤り訂正パリティ}/2語ま での誤りを完全に直せる • インターリーブしたら、見かけ上多くのデータが欠 損していても訂正可能
データと誤り訂正符号の配置 • QRコードには、この誤り 訂正符号が配置されている 参照 https://www.keyence.co.jp/ss/products/autoid/codereader/basic2d_qr.jsp
ロゴ重ねQRコードを作ってみた
QR Code Generator https://u7f32phomuw7xbv434d2oqfqf40jadkk.lambda-url.ap-northeast-1.on.aws/ GitHub: https://github.com/meihei3/qr-create-page • Bref + Lambda
Function URLs で実行 • Slim + Twig で HTML を返す • endroid/qr-code でQRコードを生成 • Google Favicon API(正式名称ではない) ◦ https://www.google.com/s2/favicons ?domain=your_url
仕組み • endroid/qr-code で生成した QR コードに、CSS で favicon を乗っけているだけ
Lambdaで動かす時の注意 • 基本的に Bref で動かす ◦ php-84-fpm は al2 なので、来年にはランタイムを
更新する必要がある • GDライブラリを使うのが面倒 ◦ 使わないで済む方法を選ぶ ▪ SVGのQRコードを生成(SVGはXMLなので) ▪ ロゴ入りの画像を生成するのではなく、HTML+CSS でロゴを重ねる。
【おまけ】このアプリを作った生成AI • Claude Code ◦ 今使うならこれが一番かな • Gemini-cli ◦ 無料枠の
gemini 2.5 pro が使えなくなると終わる • Junie (JetBrains AI) ◦ Big Love♡ • Warp ◦ かなり好き ◦ https://app.warp.dev/referral/W9DDKN
まとめ
まとめ
著作権表記 • 本スライドで使用しとる一部の画像の著作権 は KEYENCE CORPORATION、情報処理学会、 KDDI CORPORATION が保有しとります © 2025 KEYENCE CORPORATION. All
Rights Reserved. © 2022 Information Processing Society of Japan. All Rights Reserved. © 2019–2022 KDDI CORPORATION. All Rights Reserved.