私はバーコードが好きだ。それも、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画像を読み取ったところ。ベンリに使えるかも
最新ニュース
はてなブックマーク - 新着エントリー - 総合 新着エントリー
- どんなに僻地だと思っても、そこは誰かの大切な故郷であり、生活があるということを忘れてはならないon 2025年7月3日 at PM 6:06
nomugi-松本産の旅人- @CtvTub53 悪石島の地震に関する動画を見ているとコメント欄に「こんな場所に住み続ける方が悪い」「こんな小さな島なんて捨てて早く逃げればいいのに」みたいな声がやたら多くて、何だかなぁと思ってしまった。 どんな僻地でもそこは誰かの大切な故郷であり、生活があるということを忘れてはならない...
- iOS26、ビデオ通話中の裸体検出で通話を停止。子ども保護機能のはずが大人でも動作 - iPhone Maniaon 2025年7月3日 at PM 3:56
iOS26の開発者向けベータで、FaceTimeビデオ通話中に衣類を脱いで裸になると、警告が表示されて通話が停止することが分かりました。本来は、子どもを性犯罪から守るための新機能のはずですが、服を脱いだのが大人であっても通話が停止します。この挙動が意図したものなのか、バグなのかは不明です。 iOS26では子どもを守...
- [14話 前編]怪獣8号 RELAX - マンガ 渡邉築/『怪獣8号』(原作:松本直也)より | 少年ジャンプ+on 2025年7月3日 at PM 3:31
怪獣8号 RELAX マンガ 渡邉築/『怪獣8号』(原作:松本直也)より <隔週金曜更新>『怪獣8号』のスピンオフギャグ漫画!迫りくる怪獣から命がけで人々を守る防衛隊員――。そんな隊員たちにも、日々の疲れを癒す「非番」がある!隊員たちが繰り広げる抱腹絶倒の休暇を見逃すな! [JC3巻9/4発売予定]
- [第11話]人喰いマンションと大家のメゾン - 田中空/あきま | 少年ジャンプ+on 2025年7月3日 at PM 3:23
人喰いマンションと大家のメゾン 田中空/あきま <隔週金曜更新!最新3話無料>地球崩壊1秒前。永遠の時間が流れる奇妙な「マンション」で、人々は滅亡を免れ生活していた。生まれた時から大家だった少女・メゾンが立ち上がる時、マンションの秘密が明かされる…!超強力タッグが紡ぐ、奇想天外SF冒険譚! [JC1巻発売中]
- ビロードのはなむけ - 言波 | 少年ジャンプ+on 2025年7月3日 at PM 3:19
JASRAC許諾第9009285055Y45038号 JASRAC許諾第9009285050Y45038号 JASRAC許諾第9009285049Y43128号 許諾番号 ID000002929 ABJマークは、この電子書店・電子書籍配信サービスが、著作権者からコンテンツ使用許諾を得た正規版配信サービスであることを示す登録商標(登録番号 第6091713号)です。
- タイミーで募集したJR東日本の車両清掃員が作業中に意識不明となり死亡した事故、数日前に労働組合が声明を出していた「労働衛生が不安定、懸念されていた事だと思う」on 2025年7月3日 at PM 3:17
ライブドアニュース @livedoornews 【状況説明】JR東日本、タイミー採用の車両清掃員が救急搬送され死亡 原因は「不明」 news.livedoor.com/article/detail… 作業員は6月21日の作業中に意識不明となり、24日に亡くなった。窓ガラスなどの清掃は外での作業だったが、体調不良の申し出後に休んでいた電車内には冷房が効い...
- [#51]ゴーストフィクサーズ - 田中靖規 | 少年ジャンプ+on 2025年7月3日 at PM 3:13
ゴーストフィクサーズ 田中靖規 <次にくるマンガ大賞2025ノミネート記念!!全話無料!>※一挙公開!キャンペーン期間:7/7 10:59まで※ <毎週金曜更新>御厨ヶ丘ニュータウン。ここはある事象を境に、非現実的現象【GHOST】の坩堝と化した!そんな町に住む中学生ひふみは、ある日引っ越してきた少女と出会い…。『サマータイ...
- [第6話]あらばけ!荒吐グングンパーク - うすた京介 | 少年ジャンプ+on 2025年7月3日 at PM 3:10
あらばけ!荒吐グングンパーク うすた京介 <隔週金曜更新>生き物大好きな少年、穴森胃成16歳。転校初日、森で出会った不思議生物に襲われるも謎の人間嫌い男、荒吐グンゼに助けられる。その出会いが穴森胃成を怒涛の学園生活へと巻き込んでいく!? うすた京介、渾身の不思議生物ギャグ開幕――!! [JC1巻8/4発売]