QRコード生成

追加アプリケーションパッケージ、PETやSFSなどの話題です

モデレータ: 暇人, YoN, nyu

アバター
タロ兵衛
記事: 875
登録日時: 08/07/08(火) 00:11
お住まい: よこはま
連絡する:

QRコード生成

投稿記事 by タロ兵衛 »

QRコードを生成するwebサイトはあちらこちらで見かけますが
メアドなど個人情報を見知らぬサイトで変換するのはちょっと気が引けます
そこで、オフラインでQRコードに変換するアプリを紹介します。


(1) 専用アプリで、エンコードもデコードも
このアプリはQtQRというもので、QRコードに変換することも
取得した画像のQRコードをデコードすることもできます。

http://sakurapup.com/mirror/graphic/

32bit用 qtqr_1.4_i386.sfs
64bit用 qtqr_1.4_amd64.sfs

カメラ搭載のマシンなら、カメラにQRコードをかざせば変換してくれますが、少々コツが必要です

問題点・・・qt4とpythonのモジュールに依存しているところが多いようで
結構メモリ食いますので注意してください
capture4990.png
(2) コマンドラインから簡素に

viewtopic.php?f=25&t=3388#p25732


2018/09/09 纏めのため編集
添付ファイルを見るにはパーミッションが必要です
最後に編集したユーザー タロ兵衛 [ 18/09/09(日) 17:58 ], 累計 2 回
neo実験君こと次期メインマシン
Intel Core i5-8400 2.80GHz
xenialpup64 7.5+lang_pack_ja-xenial64e
アバター
タロ兵衛
記事: 875
登録日時: 08/07/08(火) 00:11
お住まい: よこはま
連絡する:

Re: QRコード生成

投稿記事 by タロ兵衛 »

カメラでの読み込みをノートpcで試してみました
一応、できました。が、スマホのそれとは違い、読み取りは少々面倒です。
カメラにかざせば、自動で認識しますが(緑の枠がでます)、Enterするか左クリックの操作が必要で、その瞬間ブレて読み取り失敗となることが多いです
アプリの対応が宜しくないのもあるのでしょうが、カメラに注文がつくように思います。
(チャット用のカメラだから、近距離で焦点が合わなかったり、解像度がそれなりだったり)
neo実験君こと次期メインマシン
Intel Core i5-8400 2.80GHz
xenialpup64 7.5+lang_pack_ja-xenial64e
アバター
タロ兵衛
記事: 875
登録日時: 08/07/08(火) 00:11
お住まい: よこはま
連絡する:

QRコード生成コンパクト

投稿記事 by タロ兵衛 »

QRコードを生成するだけにqtqrは少々puppyには大きすぎるので、コンパクトな方法を見つけてきました。
xclipコマンドとqrencodeとfehをパイプで結べばほぼ目的は達せられて、容量も.debの状態で44KBとリーズナブル。
(Precise Puppy Linux 571JPの場合で330KB)

インストールはqrencodeとfehをパッケージマネージャーでインストールしてください。
xclipは標準で入ってましたのでインストールは不要です(xenial64)

使い方
(1) QRコード化したいテキストや、URLなどを選択状態にします
(2) コンソールから下記を実行(「--title QR」 は無くてもOKです。あると、ちょっぴりそれらくなります)

コード: 全て選択

xclip -o | iconv -t -c CP932 | qrencode -o - -k | feh - --title QR
(3) QRコードが表示されるのでスマートフォンなどに読み込ませる。
(4) QRコードのウィンドウで「Esc」を押して終了する

もちろん、コンソールからではなく、デスクトップに貼っても、キーボード・ショートカットでも良いと思います

◆ Precise Puppy Linux 571JP をお使いの方は、下記のモジュールをインストールしてください
 http://sakurapup.com/mirror/graphic/から
  feh-2.27.1-i686.pet
  qrencode-4.0.2-i686.pet

 パッケージマネージャから
  libimlib2_1.4.4
  xclip 0.12-1
capture28196.png
追記:
コンソールからqrencodeにテキスト付けて起動すると、コンソール上にQRコードが表示できます。
ただし、コードの表示が大きいせいか、スマホなどでの認識に時間がかかります。
tfhを経由したほうが認識しやすいです

変更:iconv -t SJIS → iconv -t -c CP932
添付ファイルを見るにはパーミッションが必要です
最後に編集したユーザー タロ兵衛 [ 18/09/21(金) 06:23 ], 累計 3 回
neo実験君こと次期メインマシン
Intel Core i5-8400 2.80GHz
xenialpup64 7.5+lang_pack_ja-xenial64e
アバター
ルビー
記事: 1240
登録日時: 14/11/24(月) 12:12

Re: QRコード生成

投稿記事 by ルビー »

タロ兵衛 さんが書きました:追記:コンソールからqrencodeにテキスト付けて起動すると、コンソール上にQRコードが表示されるので、それだけでも十分実用です。
とりあえず、qrencodeを試してみたのですけど、オプションをあまり理解しないで試したので、コンソールには出せませんでした。
画像ファイルに出力して、スマホのバーコードリーダーで読み込みましたが、日本語が文字化けしてしまいました。
どこかで、文字コードの設定が必要?

TazPupのXtermで試しました。
書式はこうしました。
qrencode -o out.png ほげほげ

PCにスマホをかざす行為が、自宅では良さそうだけど、会社でやっていると、何だか誤解をされかねない様な気がしないでもないです(^^;。
アバター
タロ兵衛
記事: 875
登録日時: 08/07/08(火) 00:11
お住まい: よこはま
連絡する:

Re: QRコード生成

投稿記事 by タロ兵衛 »

ルビー さんが書きました:画像ファイルに出力して、スマホのバーコードリーダーで読み込みましたが、日本語が文字化けしてしまいました。
これは失礼しました。
デンソー製のQRコードリーダー使っているのですが、特に指定なくても漢字が読めます。が、他のだと、化けますね。
それで、qrencodeだけで使う場合はこんな感じでいけると思います

コード: 全て選択

qrencode -t ANSIUTF8 ほげほげ

ルビー さんが書きました:PCにスマホをかざす行為が、自宅では良さそうだけど、会社でやっていると、何だか誤解をされかねない様な気がしないでもないです(^^;。
確かに、このご時世では怪しさ100%ですね。流行らせちゃえば、普段の行動…にはならないか
neo実験君こと次期メインマシン
Intel Core i5-8400 2.80GHz
xenialpup64 7.5+lang_pack_ja-xenial64e
アバター
ルビー
記事: 1240
登録日時: 14/11/24(月) 12:12

Re: QRコード生成

投稿記事 by ルビー »

タロ兵衛 さんが書きました:それで、qrencodeだけで使う場合はこんな感じでいけると思います
残念ながら、うまくいきませんでした(T_T。

TazPup、571JPのqrencode Ver.3.1.1では、-t オプションが使えなかったです。
なので、Xenialpupで試したら、こちらはVer.3.4.4で使えました。
でも、スマホで読み取ると文字化けしちゃいます。

私のスマホのバーコードリーダーがタコなのか。
そう言えばポメラはシフトJISだしと思って、GeanyのCP932テキストから試してみたけど失敗でした。

Xenialでは、端末の中でQRコード表示ができました。
ただ、-t オプションを外すと表示されなかったり、画像ファイルに出力が不可だったりと、ちょっと挙動が不明です。

私はちょこっとしたメモテキストはメールでスマホに送っています。
後はスマホが勝手に自動受信するので、今の所、一番便利なのですけど、QRコード転送が簡単にできれば、こちらの方が便利そうです。
もう少し、がんばってみます(^^;。
タロ兵衛 さんが書きました:確かに、このご時世では怪しさ100%ですね。流行らせちゃえば、普段の行動…にはならないか
やっぱり、会社では挙動不審かもしれないので、自宅利用になりそうです。
でも、朝出掛けに、急いでスマホに転送したい時なんかは、役に立つかも。
アバター
タロ兵衛
記事: 875
登録日時: 08/07/08(火) 00:11
お住まい: よこはま
連絡する:

Re: QRコード生成

投稿記事 by タロ兵衛 »

ルビー さんが書きました:残念ながら、うまくいきませんでした(T_T。

TazPup、571JPのqrencode Ver.3.1.1では、-t オプションが使えなかったです。
なので、Xenialpupで試したら、こちらはVer.3.4.4で使えました。
でも、スマホで読み取ると文字化けしちゃいます。
あらら。結構難しいですね。
32ビット版コンパイルしたものを、同じ所に置いておきました。
バージョンは4.02の最新版です。
http://sakurapup.com/mirror/graphic/
私のスマホのバーコードリーダーがタコなのか。
そう言えばポメラはシフトJISだしと思って、GeanyのCP932テキストから試してみたけど失敗でした。
シフトJISを使うときは -k を引数に置きます。
-t は何がしかを置く必要があるみたいです。

コード: 全て選択

 -t {PNG,EPS,SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8}
neo実験君こと次期メインマシン
Intel Core i5-8400 2.80GHz
xenialpup64 7.5+lang_pack_ja-xenial64e
アバター
タロ兵衛
記事: 875
登録日時: 08/07/08(火) 00:11
お住まい: よこはま
連絡する:

Re: QRコード生成

投稿記事 by タロ兵衛 »

スマホのカメラ機能だけだと化けますね。
・・・というかカメラ機能だけもQR見つけると変換するとは知らなんだ

漢字を何とかするには何らかのリーダーが必要のようです
デンソー(正確にはデンソーさんの子会社)のが無敵のようです。
カメラ内のQRコードを見つけるのも早いし漢字コードの変換も上手です
(ただし、QRコード読み取るたびに、位置情報を取得していたとかで一時騒ぎがあったそうな)
neo実験君こと次期メインマシン
Intel Core i5-8400 2.80GHz
xenialpup64 7.5+lang_pack_ja-xenial64e
アバター
ルビー
記事: 1240
登録日時: 14/11/24(月) 12:12

Re: QRコード生成

投稿記事 by ルビー »

タロ兵衛 さんが書きました:32ビット版コンパイルしたものを、同じ所に置いておきました。
バージョンは4.02の最新版です。
これでも失敗でした。

どうも、私の所ではダメっぽいかも。
半角英数字はうまくいくけど、日本語でこけます。
タロ兵衛 さんが書きました:スマホのカメラ機能だけだと化けますね。
・・・というかカメラ機能だけもQR見つけると変換するとは知らなんだ
私のスマホでは、カメラの中に「バーコードリーダーに切替」と言うのがあって、それでやっています。
QRコードの事は知らないので、少し調べたら、基本シフトJISみたいですね。
最近になって、UTF-8に対応したみたいですけど、私のスマホのバーコードリーダーはシフトJISじゃないとダメなのかも。

qrencodeでCP932のQRコードを作れないかと思って、いろいろ試してみましたが、ちょっとできなかったです。
あ、-k も試しました。
タロ兵衛 さんが書きました:デンソー(正確にはデンソーさんの子会社)のが無敵のようです。
デンソーって何の事だか分からなかったのだけど、QRコードの開発元だったのですね。

ポメラのQRコード転送では、相手をiPhoneだけに想定してるみたいで、分割されたQRコードを連続で読み取れるQRコードリーダーはあまり無いのだそうです。
私は、何も考えずに手元のAndroidスマホでやって成功したのですが、たまたま運が良かっただけなのかもしれません。
アバター
タロ兵衛
記事: 875
登録日時: 08/07/08(火) 00:11
お住まい: よこはま
連絡する:

Re: QRコード生成

投稿記事 by タロ兵衛 »

特に漢字コードを指定していないスマホのQRリーダーは、SHIFT-JISがデフォルトのような感じです
Puppy linuxのコンソールの場合、UTF8(あれ?UNICODE??)なので、どうやっても化けてしまうようです
そこで、コンソール入力を一旦Shift-JISにすれば良いので、下記で試してみました。(1行だけど全然シンプルじゃない^^;)

コード: 全て選択

echo ほげほげ | iconv -t SJIS | qrencode -t ANSI -k
これで私のスマホもカメラのオプション機能だけで読み取れました
neo実験君こと次期メインマシン
Intel Core i5-8400 2.80GHz
xenialpup64 7.5+lang_pack_ja-xenial64e
アバター
ルビー
記事: 1240
登録日時: 14/11/24(月) 12:12

Re: QRコード生成

投稿記事 by ルビー »

タロ兵衛 さんが書きました:そこで、コンソール入力を一旦Shift-JISにすれば良いので、下記で試してみました。(1行だけど全然シンプルじゃない^^;)
ちょっと、いろいろはまったけど、Shift-JISの転送できました。 :D

qrencodeの -t オプションはテキストの種類の指定かと思ってたら、生成されるイメージの種類の指定だったのですね。
-t オプションの有無で、端末にQRコードが出たり、出なかったり、画像ファイルに出力できたり、できなかったりで、ちょっと悩みました。

端末に出したQRコードだと、何故かスマホのカメラでなかなか読み取れないので、feh 出力にしました。
これなら、普通に読み込めます。
-t オプションのデフォルトが PNG で、画像で出力する際は -t オプション無しでOKみたいです。

で、スクリプト qrcode.sh に書いてこうなりました。

コード: 全て選択

OUTPUT=/root/my-documents/tmp/qrcode.png
xclip -o | iconv -t SJIS | qrencode -o ${OUTPUT} -k && feh ${OUTPUT}
何故か571JPだと、標準出力 → 標準入力で、fehに渡すとこける時があります。
fehが動くタイミングが速すぎるのか、-(標準入力)なんて無いよってエラーが出て、QRコードが表示されないので、一旦ファイルに書き出す事にしました。
それでも、エラーになる時があるので、&& で完全にファイルの書き出しが終わってから、feh起動にして、やっと571JPでも使える様になりました。
Xenialpupでは、qrencodeの標準出力でも問題ありません。

feh のタイトルは不要かなと外しました。
できるだけ、コマンドを短くしたかったので。

xclip でもはまったのですが、マウスで反転表示して、コピーした文字列が送られるのかと思ってたら、xclip実行の時点で、反転表示で選択されている文字列が送られます。
Xのクリップボードのバッファが3個もある為らしいですが、なかなか複雑です。

と、長くなっちゃったけど、これ、なかなか便利と言うより、激しく便利です。
Webから、ちょこちょこっとクリップ感覚でテキストをメモしてスマホに転送したりできます。
いやー、今回のタロ兵衛さんのアイディアは、クリーンヒットですね。
いや、満塁ホームランかな。
アバター
タロ兵衛
記事: 875
登録日時: 08/07/08(火) 00:11
お住まい: よこはま
連絡する:

Re: QRコード生成

投稿記事 by タロ兵衛 »

ルビーさん、いろいろ試してもらって有難うございます。(ホームランなんて100年早いです・・・ぽてんヒットぐらいで上等ですよ。内野ゴロか?)
さて5.7.1でのトラブルは、パイプのスレッド処理の非同期の問題のようです。
あれって、パイプで仕切られた処理ごとで順次処理しているのだと思ったら、送り出すデータができ次第、パイプを介して次にどんどん送るんですね。知らなかった。トラブルは良い先生です。勉強になりました。
で、5.7.1の場合、送り側のqrencodeが4.0.2の最新とすると、受けのfehが少々古いので、fehのご本家からソースを拝借してコンパイルして、最新版のpet作ってみました。(昼休み終わっちゃったので、検証してません。良かったら試してみてください)
ただし、ここでトラブルです。5.7.1ではコンパイルが通りません。昼休みの時間しかなかったので、原因は追求してませんが、とりあえず6.0.5でコンパイルしたfehのpetを下記にupしました。直らないかも知れませんがお試しください。(あす私も5.7.1リアルマシンかVBoxで試してみます)
http://sakurapup.com/mirror/graphic/
neo実験君こと次期メインマシン
Intel Core i5-8400 2.80GHz
xenialpup64 7.5+lang_pack_ja-xenial64e
アバター
ルビー
記事: 1240
登録日時: 14/11/24(月) 12:12

Re: QRコード生成

投稿記事 by ルビー »

タロ兵衛 さんが書きました:で、5.7.1の場合、送り側のqrencodeが4.0.2の最新とすると、受けのfehが少々古いので、fehのご本家からソースを拝借してコンパイルして、最新版のpet作ってみました。(昼休み終わっちゃったので、検証してません。良かったら試してみてください)
571JPで feh-2.27.1-i686.pet 入れて、feh 2.2 → 2.27.1 にして試してみました。
パイプの標準入力で、エラー無しでQRコードが表示できました。
ファイル出力経由でも、問題無しです。
書式はこうしました。

コード: 全て選択

xclip -o | iconv -t SJIS | qrencode -o - -k | feh -
ただ、feh-2.27.1-i686.pet だけのインストールでは、ライブラリ libImlib2.so.1 が無いよとエラーになりました。
パッケージマネージャで、libimlib2_1.4.4 を入れて動きました。

571JPで feh_2.2-1 を入れると、一緒に libimlib2_1.4.4、gliblib1_1.2.4-8 が入りますが、feh-2.27.1-i686.pet では、gliblib1_1.2.4-8 は入れなくても動きました。
タロ兵衛 さんが書きました:ただし、ここでトラブルです。5.7.1ではコンパイルが通りません。昼休みの時間しかなかったので、原因は追求してませんが、とりあえず6.0.5でコンパイルしたfehのpetを下記にupしました。
Tahrpupでコンパイルして、571JP使用では何か問題があるのでしょうか。
fehって、とっても高機能なビューアーみたいですが、英語のマニュアルしか見当たらないので、QRコード表示にしか使ってないいので、他は未検証です。

上記も571JPだけで、他のパピーでは試していませんが、とりあえず。
アバター
タロ兵衛
記事: 875
登録日時: 08/07/08(火) 00:11
お住まい: よこはま
連絡する:

Re: QRコード生成

投稿記事 by タロ兵衛 »

ルビーさん。お試し有難うございます。
私も先ほどまでVirtualBoxで試してました。
ルビーさんのレポートと同じ追加ファイルの組み合わせで、動作しました。

ここで追加情報です。
選択状態のテキストを上手く受け取れるアプリが限定されるようです。OperaやLeafpadでも文字化けします。
どこで化けるかというと先頭のxclipでした。
レポジトリからxclip0.12を入れて解決しました。

まとめとして、最初の記事を後ほど修正しておきます。
添付ファイルを見るにはパーミッションが必要です
neo実験君こと次期メインマシン
Intel Core i5-8400 2.80GHz
xenialpup64 7.5+lang_pack_ja-xenial64e
アバター
ルビー
記事: 1240
登録日時: 14/11/24(月) 12:12

Re: QRコード生成

投稿記事 by ルビー »

話が込み入ってきたので、ちょっと頭を整理してみました。

qrencodeですが、古いバージョンでも、-k オプションが使えればOKですね。
571JPの 3.1.1 も -k オプションが使えます。
-t が無いから、QRコードの端末表示はできないですが。

で、これと、571JPの標準で入る feh Ver.2.2 で試したら、やっぱりパイプの標準入力でこけちゃった(^^;。
ファイル出力で渡せば、パイプでもこけません。

よくよく考えたらビューアーは、標準のViewniorでも行けるのかなと試してみたら、標準入力は読めませんでした。
ファイル出力渡しは、パイプでも問題無しです。
私は、Viewniorの方が良いかもしれない。
fehは少量のテキストだと、ウィンドウが小さすぎて、タイトルバーをマウスで掴んで移動するのが困難です。
まあ、すぐにQRコード読み込めば、移動の必要もないし、マウス+Altキーで移動も可能ですが。

で、結果、qrcode.sh はこうなりました。

コード: 全て選択

OUTPUT=/root/my-documents/tmp/qrcode.png
xclip -o | iconv -t SJIS | qrencode -o ${OUTPUT} -k | viewnior ${OUTPUT}
タロ兵衛 さんが書きました:選択状態のテキストを上手く受け取れるアプリが限定されるようです。OperaやLeafpadでも文字化けします。
どこで化けるかというと先頭のxclipでした。
レポジトリからxclip0.12を入れて解決しました。
私はSeaMonkeyとGeanyから取り込めればOKなので、xclipが古くても問題無しです。
と思ってたら、ありゃ、SeaMonkeyも化けますね(^^;。
Pale Moonもダメです。
おかしいな。できたと思ったのだけど。Xenialpupだったのかな。
xclip Ver.0.12 にして直りました。

小さいツールの組み合わせは、いろいろとありますね。
でも、面白いですけど。

何気にスマホを縦にして、QRコードを読み取っていたけど、試しにスマホを横にしてみたらOKでした。
スマホを横に鷲掴みにして、アバウトにかざしても読み取れるので楽ちんです。
長文はQRコードが複数に分割されるのかと思ってたら、結構な長文も1個のQRコードで転送できました。

これ本当に便利です。
タロ兵衛さん、ありがとうございます。
返信する