私はバーコードが好きだ。それも、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画像を読み取ったところ。ベンリに使えるかも
最新ニュース
はてなブックマーク - 新着エントリー - 総合 新着エントリー
- フロントエンド開発に役立つクライアントプログラム共通のノウハウ / Universal client-side programming best practices for frontend developmenton 2025年9月21日 at AM 7:47
フロントエンドカンファレンス東京2025における発表資料です。 GUIクライアント開発のノウハウのうち、フロントエンド開発にも活かせるものについてお話しています # URL YouTube: https://www.youtube.com/c/narusemi HomePage: https…
- 万博会場で定着した「エスカレーターの片側を空けない」が絶大な効果を発揮…そもそもエスカレーターは歩いてはいけない設計なのではon 2025年9月21日 at AM 7:29
山田太郎五郎 @yamadagorou これ万博会場だけじゃなくて大阪の別の場所でもこうなってる場所があったから何故なのかと息子と考察したのが 大阪はエスカレーターの右側に並んで左側を空ける 東京とは真逆の文化なのだけど 今万博には全国から多くの人が来ていて右に並ぶ人と左に並ぶ人が混在した結果最適化されたのではな...
- エスカレーターに乗ってたら上からスーツケースが滑り落ちてきて轢かれそうになった話に似た体験談が続々…「スーツケースは自分より上の位置」「絶対手を離さないで」などon 2025年9月21日 at AM 7:07
ガオーちゃん @gaochanofficial @tanpococo 外から失礼します🙇🏻♂️ 1番左のエスカレーターで降りてて見てましたが、もしかして割と下の方で俊敏な動きで避けた方でしょうか… 中身も重そうでしたし、なんせキャリー2個持ちで危機管理能力とか皆無そうなバカでしたね… 2025-09-20 21:21:49 おこ @tanpococo @gaochanofficial ...
- 『コンビニからミサイルが急発射されて完全に死んだと思った』命の恩人のような道路設備のおかげで間一髪助かった報告「あれって必要なんだな」on 2025年9月21日 at AM 6:13
八重ナギ @norisio コンビニからミサイル急発射されて完全に死んだとおもった。このままきてたら避けようがなかった。今際の際は「こんな完璧にロックオンしてくるのか〜w」だったけど、縁石のりあげてとまったぽくてたすかった。見返したらタイヤぶっこわれてるし。ありがとうミニストップの縁石…命の恩人…。 pic.x.co...
- 台湾の大学に安倍元首相が推進した政策などを研究する拠点設立 | NHKon 2025年9月21日 at AM 6:12
台湾の大学に安倍元総理大臣が推進した政策などを研究する拠点が設立され、頼清徳総統は「台湾と日本の将来の協力における重要な基盤になることを望む」と述べ、日本とのさらなる関係強化に期待を示しました。 台湾の政治大学では、21日安倍元総理大臣が推進した外交や経済などの政策を研究する拠点「安倍晋三研究センタ...
- 『フドあす』キャラデザ 坂井久太――アニメーターの芝居を活かす作画術【インタビュー】 | アニメイトタイムズon 2025年9月21日 at AM 6:02
TVアニメ『フードコートで、また明日。』坂井久太さん(キャラクターデザイン・総作画監督)インタビュー|アニメーターの芝居を活かした作画へのこだわり 全6話構成で、現在アンコール放送がされているTVアニメ『フードコートで、また明日。』(フドあす)。和田(CV.宮崎ヒヨリ)と山本(CV.青山吉能)がフードコート...
- 「チョコプラ」松尾さん、「TKO」木下さん、「千原兄弟」千原せいじさん。なぜ芸人さんの炎上が続くのか #エキスパートトピ(中西正男) - エキスパート - Yahoo!ニュースon 2025年9月21日 at AM 5:26
「チョコレートプラネット」松尾駿さんの「SNSやるな」発言が大きな騒動になり、謝罪動画をアップする展開となりました。また「TKO」木下隆行さんは移住先のタイの寺院で撮影した写真をインスタグラムにアップしたことで炎上騒ぎに。7月には「千原兄弟」の千原せいじさんが自身のYouTubeチャンネルでの発言をめぐり物議...
- “モノ言う株主”「趣味は炎上」のインフルエンサー田端信太郎がメルカリ社員をSNSで侮辱した疑いで書類送検…被害者は複数? 本人を直撃すると「事実です」 | 集英社オンライン | ニュースを本気で噛み砕けon 2025年9月21日 at AM 5:22
“モノ言う株主”「趣味は炎上」のインフルエンサー田端信太郎がメルカリ社員をSNSで侮辱した疑いで書類送検…被害者は複数? 本人を直撃すると「事実です」 警視庁麻布署は3日、SNSの投稿で名誉を傷つけたとして、個人投資家でインフルエンサーの田端信太郎氏を侮辱罪の疑いで東京地検に書類送検したことが、捜査関係者の...