今月もほとんど更新できず、申し訳ありません。
先日、Android携帯(スマートフォン)を買いました。いろいろといじりたいところですが、仕事の緊急連絡用に使うので、あまり無謀なことはできません。Androidマーケットで無料配布されている「QRコードスキャナー」が結構よかったので、いろいろなQRコードを読み込んで遊んでいました。
そこで、UbuntuでQRコードは作れるのか?と疑問に思い、調べてみたところ、「qrencode」というパッケージを発見。…したのですが、コマンドラインでしか使えないので、安直ですがzenityでGUIフロントエンドを作ってみました。PythonとかPerlでも作れると思いますけど、面倒なので手抜きしました、すみません(笑

←作成したQRコードの例。後述のスクリプトの使用法が書かれています。
$ sudo apt-get install qrencode
【「-o」オプション】
出力する画像ファイル名を指定する。
【「-l」オプション】
誤り訂正レベル (Error Correction Level):L,M,Q,Hの4レベルが指定できる。デフォルトは「L」。
L - コード語の約7%が復元可能
M - コード語の約15%が復元可能
Q - コード語の約25%が復元可能
H - コード語の約30%が復元可能
【「-s」オプション】
ドットのサイズをピクセル単位で指定できる。デフォルトは「3」。
【「-m」オプション】
余白の幅を指定できる。デフォルトは「4」。
【「-v」オプション】
型番(Version)を指定できる。デフォルトは「auto」。型番(Version)というのは、1から40の番号で表されるシンボルの大きさ。最小は「型番1」の21×21モジュールで、最大は「型番40」の177×177モジュール。
(注意) モジュール (Module)とは:QRコードのシンボルを構成する最小の単位セル。モジュールの大きさは型番により決定され、データの1ビットが1モジュールに相当する。
※ 追記
Fedora15でもqrencodeをインストールすれば使えることがわかりました。上のスクリプトをFedoraで利用する場合は、Fedoraのフォルダ名に合わせて「ピクチャ→画像」と置き換えてください。
使い方は…

←これを携帯やスマートフォンで
読み込んでみて下さい(笑
これだけでは申し訳ないので、画面で紹介しておきます。説明表示を日本語でわかりやすくしておいたので、実行していただければわかると思います。
完成した画像の保存場所を指定します。デフォルトはホームディレクトリの「ピクチャ」フォルダになってます。
ファイル名を入力します。拡張子は不要です。何も入力せずに「OK」をクリックしてしまうと、エラーになります。
変換したい文字列を入力。携帯の感度にも依存しますが、日本語フォントで400字程度が限界。URLでもOKです。
成功すると、この画面になるはずです。
えーと、ここまで書いておいて、非常に言いづらいのですが…。実はWEBサービスでQRコードを作れるところが結構あることを知ってしまいました。驚いたのは、QRコードでブログを書いてる人がいたことですね。あまり長文はかけないでしょうけど、Twitter程度なら十分いけます。
あと気になるのは、バーコードですが、スタイルファイルを追加すれば、TeXのコマンドでも作成可能です。機会があれば紹介します。
ツイート
先日、Android携帯(スマートフォン)を買いました。いろいろといじりたいところですが、仕事の緊急連絡用に使うので、あまり無謀なことはできません。Androidマーケットで無料配布されている「QRコードスキャナー」が結構よかったので、いろいろなQRコードを読み込んで遊んでいました。
そこで、UbuntuでQRコードは作れるのか?と疑問に思い、調べてみたところ、「qrencode」というパッケージを発見。…したのですが、コマンドラインでしか使えないので、安直ですがzenityでGUIフロントエンドを作ってみました。PythonとかPerlでも作れると思いますけど、面倒なので手抜きしました、すみません(笑

←作成したQRコードの例。後述のスクリプトの使用法が書かれています。
qrencodeのインストール
ソフトウェアセンターかSynapticパッケージマネージャで「qrencode」を検索して入れるか、または、下記のコマンドでインストールします。$ sudo apt-get install qrencode
qrencodeコマンドのオプション
代表的なオプションは以下のとおりです。【「-o」オプション】
出力する画像ファイル名を指定する。
【「-l」オプション】
誤り訂正レベル (Error Correction Level):L,M,Q,Hの4レベルが指定できる。デフォルトは「L」。
L - コード語の約7%が復元可能
M - コード語の約15%が復元可能
Q - コード語の約25%が復元可能
H - コード語の約30%が復元可能
【「-s」オプション】
ドットのサイズをピクセル単位で指定できる。デフォルトは「3」。
【「-m」オプション】
余白の幅を指定できる。デフォルトは「4」。
【「-v」オプション】
型番(Version)を指定できる。デフォルトは「auto」。型番(Version)というのは、1から40の番号で表されるシンボルの大きさ。最小は「型番1」の21×21モジュールで、最大は「型番40」の177×177モジュール。
(注意) モジュール (Module)とは:QRコードのシンボルを構成する最小の単位セル。モジュールの大きさは型番により決定され、データの1ビットが1モジュールに相当する。
QRmake
zenity(Gnomeに付随する簡易なGUIツール)と、この「qrencode」コマンドを利用して、作成したのが次のスクリプトです。下記のコードを「QRmake」という名前で保存して実行権を与えれば、ダブルクリックして「実行」ボタンを押すだけでGUIプログラムが起動します(Ubuntu11.04で動作確認済み)。#!/bin/bash
# QR Code Generator created by vine_user 2011-06-25
you=`whoami`
outpath=`zenity --entry --title="保存する場所は?" --text=" QRコードの画像を保存する場所をフルパスで指定してください。 \n\n 何も指定しなければ /home/$you/ピクチャ に保存されます。"`
button0=$?
if [ $button0 -eq 0 ];then
if [ -z $outpath ];then
outpath=/home/`whoami`/ピクチャ
fi
pname=`zenity --entry --title="ファイル名は?" --text=" ファイル名は何にしますか?\n 拡張子は不要(png形式になります) "`
button1=$?
if [ $button1 -eq 0 ];then
if [ -z $pname ];then
zenity --warning --title="失敗!" --text=" ファイル名を入力してください。終了します。"
else
content=`zenity --entry --width 200 --height 50 --title="コード化する文字列" --text=" QRコードに変換したい文字列を入力してください。 "`
button2=$?
if [ $button2 -eq 0 ];then
if [ -z $content ];then
zenity --warning --title="失敗!" --text=" 何か文字を入力してください。終了します。"
else
qrencode -s 10 -o "$outpath"/"$pname".png "$content"
zenity --info --title="成功!" --text=" QRコードは\n\n $outpath/$pname.png \n\n に保存されました。\n"
fi
else
zenity --info --title="キャンセル" --text=" QRコードの内容をキャンセルしました。 \n\n 終了します。 "
fi
fi
else
zenity --info --title="キャンセル" --text=" QRコードのファイル名をキャンセルしました。 \n\n 終了します。 "
fi
else
zenity --info --title="キャンセル" --text=" QRコードの保存先をキャンセルしました。 \n\n 終了します。 "
fi
# QR Code Generator created by vine_user 2011-06-25
you=`whoami`
outpath=`zenity --entry --title="保存する場所は?" --text=" QRコードの画像を保存する場所をフルパスで指定してください。 \n\n 何も指定しなければ /home/$you/ピクチャ に保存されます。"`
button0=$?
if [ $button0 -eq 0 ];then
if [ -z $outpath ];then
outpath=/home/`whoami`/ピクチャ
fi
pname=`zenity --entry --title="ファイル名は?" --text=" ファイル名は何にしますか?\n 拡張子は不要(png形式になります) "`
button1=$?
if [ $button1 -eq 0 ];then
if [ -z $pname ];then
zenity --warning --title="失敗!" --text=" ファイル名を入力してください。終了します。"
else
content=`zenity --entry --width 200 --height 50 --title="コード化する文字列" --text=" QRコードに変換したい文字列を入力してください。 "`
button2=$?
if [ $button2 -eq 0 ];then
if [ -z $content ];then
zenity --warning --title="失敗!" --text=" 何か文字を入力してください。終了します。"
else
qrencode -s 10 -o "$outpath"/"$pname".png "$content"
zenity --info --title="成功!" --text=" QRコードは\n\n $outpath/$pname.png \n\n に保存されました。\n"
fi
else
zenity --info --title="キャンセル" --text=" QRコードの内容をキャンセルしました。 \n\n 終了します。 "
fi
fi
else
zenity --info --title="キャンセル" --text=" QRコードのファイル名をキャンセルしました。 \n\n 終了します。 "
fi
else
zenity --info --title="キャンセル" --text=" QRコードの保存先をキャンセルしました。 \n\n 終了します。 "
fi
※ 追記
Fedora15でもqrencodeをインストールすれば使えることがわかりました。上のスクリプトをFedoraで利用する場合は、Fedoraのフォルダ名に合わせて「ピクチャ→画像」と置き換えてください。
使い方は…

←これを携帯やスマートフォンで
読み込んでみて下さい(笑
これだけでは申し訳ないので、画面で紹介しておきます。説明表示を日本語でわかりやすくしておいたので、実行していただければわかると思います。




えーと、ここまで書いておいて、非常に言いづらいのですが…。実はWEBサービスでQRコードを作れるところが結構あることを知ってしまいました。驚いたのは、QRコードでブログを書いてる人がいたことですね。あまり長文はかけないでしょうけど、Twitter程度なら十分いけます。
あと気になるのは、バーコードですが、スタイルファイルを追加すれば、TeXのコマンドでも作成可能です。機会があれば紹介します。
ツイート
一部の携帯だけなのか、全部アウトなのかは不明です。Linuxで作ったから?どうなんでしょう?