私はバーコードが好きだ。それも、JAN-13/EAN-13形式限定で。理由はいくつかあるが、4種の太さのバーを4種の間隔に置くと13桁の数字を表現でき、それが世界中の企業や製品名とリンクしている、という情報量の少なさに比べたときの表現力の大きさに尽きる。バーの太さが重要な情報となるため、高い印刷精度...
私はバーコードが好きだ。それも、JAN-13/EAN-13形式限定で。理由はいくつかあるが、4種の太さのバーを4種の間隔に置くと13桁の数字を表現でき、それが世界中の企業や製品名とリンクしている、という情報量の少なさに比べたときの表現力の大きさに尽きる。バーの太さが重要な情報となるため、高い印刷精度と読取り精度が要求されるが、カメラを内蔵した携帯電話の普及やCCDの性能向上もあり、その活用範囲は拡がっている。
JAN-13/EAN-13の場合、最初の2桁は国コード(日本の場合49または45)、次の5桁(2001年以降は7桁)は商品メーカーコード、次の5桁(2001年以降は3桁)がメーカーが独自に決める商品アイテムコード、最後の1桁は読み取りが正しいかどうか判定するための情報(チェックデジット)とされている。
このJAN-13/EAN-13バーコードは、当コラムでいうところの「マッシュアップ」に使える素材だと考えている。そして最近、にわかにその必要性にかられているのだ。
というのも、CDの耐久性が気になり始めたから。一説にCDの寿命は数十年と言われるが、仮に30年が目安だとすると、自分のCDライブラリはそろそろヤバめということになる。プログレとかAORとか、GRP全盛期のフュージョンとか、購入から20年を経ているものが多いためだ。ふだんは湿気の少ない冷暗所(書斎ともいう)に保管しているが、それらが一斉に寿命を迎えたらかなりへこむ。
だから、CDが健全なうちにCD-Rへバックアップしようと考えている。数百枚は格納できるケースにCD-Rを収納し、PPシートへ管理タグ代わりにJAN-13/EAN-13バーコードを貼り付けよう、という計画なのだ。そのCDの情報が必要になったときは、スマートフォンのバーコード読み取りアプリを使えばいい。これも一種のマッシュアップと考えるが、いかがだろう?
肝心の方法だが……Rubyのバーコード生成ライブラリ「barby」を使うことにした。バーコードを生成してくれるWebサイトもあるが、さすがに数百枚ものCDを処理したくない。CD-Rへのバックアップは手作業にならざるをえないとして、チェックデジットを除いた12桁の数値をブラウザのテキストフィールドに手入力することは避けたい、そう考えれば自動処理を模索するのは必然だ。
準備はかんたん、Rubyを標準装備するOS Xの場合、TerminalからgemコマンドでBarbyとPNG出力用ライブラリをインストールすればOK。あとはスクリプトを用意すれば、バーコードを生成できるはずだ。
・BarbyおよびPNG出力用ライブラリのインストール $ sudo gem install barby $ sudo gem install barby-chunky_png
とりあえず作成したスクリプトは、ヘッダ部分を除き実質1行というかんたんなもの。それでも、引数として12桁の数値 — JAN-13/EAN-13バーコードの下にある数値の右端を除いた12桁 — を与え、出力先のPNGファイルを指定して実行すれば、立派なバーコードを作成できる。
今回はテストのためごく基本的な機能しか用意していないが、CSVファイルから数値を入力したり、複数のバーコードを帳票状に整形したりすれば、より実用的になるはず。マッシュアップは道半ば、引き続き改良を続けてみたい。
リスト1:バーコード生成用スクリプト(makeJAN13.rb) require 'rubygems' require 'barby' require 'barby/barcode/ean_13' require 'barby/outputter/png_outputter' print Barby::EAN13.new(ARGV[0]).to_png
コマンド実行例 $ ruby makeJAN13.rb 498800970102 > barcode.png
iPhoneでバーコード読み取りアプリ「ZBar Barcode Reader」を使い、今回用意したスクリプトで出力したPNG画像を読み取ったところ。ベンリに使えるかも
最新ニュース
はてなブックマーク - 新着エントリー - 総合 新着エントリー
- [#79]ゴーストフィクサーズ - 田中靖規 | 少年ジャンプ+2026年4月2日 に PM 3:29 に
ゴーストフィクサーズ 田中靖規 <毎週金曜更新>御厨ヶ丘ニュータウン。ここはある事象を境に、非現実的現象【GHOST】の坩堝と化した!そんな町に住む中学生ひふみは、ある日引っ越してきた少女と出会い…。『サマータイムレンダ』の田中靖規が描く、非現実校正アクション! [JC7巻発売中]
- difit-review スキルでエージェント自身に変更点をコメントしてもらおう2026年4月2日 に PM 3:25 に
difit はローカルの git 差分を GitHub スタイルのインターフェースで確認できる CLI ツールです。difit-review スキルを使用することでエージェントがコードの変更点にコメントを残した状態で difit を起動できます。この記事では、difit-review スキルを使用してエージェント自身にコードの変更点をコメントしてもらう...
- ちかちゃんはもっとしりたい - むぴー | 少年ジャンプ+2026年4月2日 に PM 3:01 に
ちかちゃんはもっとしりたい むぴー 小学2年生のちかちゃんはとなりのせきのゆうきくんが気になります。ゆうきくんのことをもっと知りたいちかちゃんはある時、チビというなぞの生物に出会い…!?
- [第12打]春雷卓球 - 平方昌宏 | 少年ジャンプ+2026年4月2日 に PM 3:00 に
春雷卓球 平方昌宏 <毎週金曜更新!最新3話無料>嵐野女子高校1年・轟美雷は、小柄ながら大の卓球好きで、全国に行くほどの実力を持っていた。しかし、全中時代、圧倒的な才能を前になすすべなく負け、卓球を辞めていた。そんな中、転校生として春咲桜花が卓球部にやってきて…?『デビィ・ザ・コルシファは負けず嫌い』平...
- [第4話]ブヨトピア - 雲母坂盾 | 少年ジャンプ+2026年4月2日 に PM 3:00 に
ブヨトピア 雲母坂盾 <毎週金曜更新>魔王を倒しきれず、世界を“ブヨブヨ”で溢れさせてしまった元勇者・ビヨンド。罪悪感から引きこもり続けた彼に、ある転機が訪れる…!!『ドリトライ』の雲母坂盾が描く、極限の“勇者VS社会生活”コメディ!!
- 1999年秋葉原ADV『世紀末之詩』、「作中の架空ゲーム20作品」を本当に作るプロジェクト始動。瀬戸口廉也・元長柾木・朱門優など夢の布陣に、ファン狂喜乱舞 - AUTOMATON2026年4月2日 に PM 1:53 に
Nekodayは4月1日、開発中の新作『世紀末之詩』に関して、スピンオフプロジェクト「20世紀 × 20の物語 × 20人」を発表した。 『世紀末之詩』は、中国・四川省発のインディーデベロッパーブランドであるNekodayが手がける終末青春群像ADVだ。中国と日本のクリエイター陣による共同制作ゲームプロジェクトで、2020年にリリ...
- 株式会社刀が大苦戦、ジャングリア沖縄に“救世主”が追加融資へ…資金集めの舞台裏《追加出資に応じなかったのは大和証券グループだけでなく…》 | 週刊文春2026年4月2日 に PM 1:52 に
テーマパーク失敗が相次ぐ「刀」の森岡毅。沖縄だけでなく、横浜のディズニー級テーマパーク計画にも水面下で関与。だが超人気漫画キャラクターの誘致で身勝手な提案を繰り返し――。カリスマの虚像を明らかにする。(ジャングリア沖縄編。横浜テーマパーク計画編はこちら) 刀といえば、2月には運営していた東京・お台場...
- 【ご報告】「暇空茜」こと水原清晃のYouTubeチャンネルをロックに追い込みました。もし復活させたかったら、滅茶苦茶に破壊した人生の「完全な原状回復」を達成してください。|堀口 英利 | Horiguchi, Hidetoshi2026年4月2日 に PM 1:37 に
第1 はじめに被害の全体像私は、2023年3月以降の約3年間にわたって、「暇空茜」こと水原清晃による複合的かつ重畳的な権利侵害(インターネットリンチ)を受け続け、人生を滅茶苦茶に破壊されました。 私の名誉、尊厳、プライバシー、大切な人間関係、平穏な生活、心身の健康といった、ありとあらゆる要素が攻撃の対象とな...


