私はバーコードが好きだ。それも、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月13日 at PM 3:06
JASRAC許諾第9009285055Y45038号 JASRAC許諾第9009285050Y45038号 JASRAC許諾第9009285049Y43128号 許諾番号 ID000002929 ABJマークは、この電子書店・電子書籍配信サービスが、著作権者からコンテンツ使用許諾を得た正規版配信サービスであることを示す登録商標(登録番号 第6091713号)です。
- [第26話]ドラマクイン - 市川苦楽 | 少年ジャンプ+on 2025年7月13日 at PM 3:05
ドラマクイン 市川苦楽 <毎週月曜更新>宇宙人が地球を救ってから、人間と宇宙人が共に住むようになった日本。工場で宇宙人の上司にこき使われるノマモトは、家族を宇宙人に殺されたという北見と出会う。仲を深める2人だが、ある日北見がとんでもないことをしてしまい… [JC3巻8/4発売]
- [59話]ケントゥリア - 暗森透 | 少年ジャンプ+on 2025年7月13日 at PM 3:02
JASRAC許諾第9009285055Y45038号 JASRAC許諾第9009285050Y45038号 JASRAC許諾第9009285049Y43128号 許諾番号 ID000002929 ABJマークは、この電子書店・電子書籍配信サービスが、著作権者からコンテンツ使用許諾を得た正規版配信サービスであることを示す登録商標(登録番号 第6091713号)です。
- 第62話 どれがいい? / となりの席のヤツがそういう目で見てくる - mmk | サンデーうぇぶりon 2025年7月13日 at PM 3:01
となりの席のヤツがそういう目で見てくる mmk 見る側はもちろんドキドキするけど、見られる側もドキドキ…? 『ラブコメクエスト』のmmkが送る、新時代の「お隣さん」純愛ショートコメディ!!
- [第156話]ラーメン赤猫 - アンギャマン | 少年ジャンプ+on 2025年7月13日 at PM 3:00
ラーメン赤猫 アンギャマン <毎週月曜更新!最新2話無料>アニメ好評配信中! 人間のいない、猫だけが営むラーメン屋に面接に来た珠子。猫の店長に猫好きか聞かれ、珠子は正直に犬派と答えるとあっさり採用される。しかし仕事内容はラーメン屋ではなく、猫のお世話係で…!? [JC12巻9/4発売予定]
- 退職代行を使った日、私は自分を許したon 2025年7月13日 at PM 2:18
私は今朝、会社を辞めた。 他の人に頼んで、退職の意思を伝えてもらった。 4年間働いた会社。 最後の最後で、自分の口から「辞める」と言えなかった。 昨夜、布団の中で考えていた。 「明日、また会社に行くのか」 その思いだけで、涙が止まらなかった。 3ヶ月前から、辞めたいと思っていた。 でも、直属の上司は忙しそ...
- 農水省が作成した「作業安全ステッカー」が、チェーンソー作業用防護服の特徴をよく表現している「危うく大怪我」「意味が分かると怖い」on 2025年7月13日 at PM 2:04
イワトオ @iwatooooo 農水省さんが作成したという安全猫ステッカーの中でもこれが好き。これ、ちょっと説明するとチェンソ作業用の防護服で、チェンソの刃が当たると繊維が出て機械を止めるんですよ。 つまり、この猫は危うく大怪我をするところ、どうにか助かったんですね。チェンソが燃えているわけではありません。 p...
- 1離陸9秒、信じがたいスイッチ操作の記録|Masukawa Toru, 増川徹@パイロットon 2025年7月13日 at PM 1:50
from The News Minutesエアインディア171便の事故予備報告書を読んで信じられない気持ちになっています。 「離陸9秒後に、両エンジンの燃料コントロールスイッチがCUT OFFにされた」 通常の手順では、飛行機の上昇を確認してギアアップするタイミング。操縦するパイロットは飛行機の姿勢を保つことに集中し、サポートす...