w3m でインライン画像を表示 (2002/02/04) 坂本浩則 hsaka@mth.biglobe.ne.jp (2002/10/16) 伊東宏之 ZXB01226@nifty.com はじめに w3m でインライン画像を表示する拡張です。 機能 ・X11 上の端末(xterm,kterm,rxvt,...)、 Linux の framebuffer 上または Windows 端末上に画像(GIF,PNG,JPEG 等)を表示します。 ・img タグで指定されたインライン画像を表示できます。 width,height 属性に応じて必要な領域を確保してレンダリングします。 align 属性に対応しています。 ・Content-type: image/* な画像ファイルを直接表示できます。 ・map タグに対応しています。 area タグの shape, coords 属性を認識し、メニュー表示から選択できます。 ・img タグの ismap 属性に対応しています。 座標値を ?, として URL に追加して送ります。 ・input タグの type=image 属性で指定されたインライン画像を表示できます。 座標値を .x=&.y= として送ります。 ・非同期に画像を読み込みます。 ・画像をキャッシュできます。 ・GdkPixbuf を利用した場合 GIF animation を表示できます。 キー操作 DISPLAY_IMAGE 画像の読込/表示を再開します。 STOP_IMAGE そのバッファの画像の読込/表示を停止します。 SET_OPTION display_image=toggle 画像の読込/表示を切替えます。 デフォルトのキーマップはありませんので、~/.w3m/keymap に keymap X DISPLAY_IMAGE keymap C-c STOP_IMAGE keymap t SET_OPTION display_image=toggle の様に記述して使用してください。 コマンドラインオプション -ppc 一文字あたりの幅(pixel 値)を指定します。デフォルトは自動設定。 正しく設定されない場合は端末の font の大きさに必ず合わせてください。 -ppl 一行あたりの幅(pixel 値)を指定します。デフォルトは自動設定。 正しく設定されない場合は端末の font の大きさに必ず合わせてください。 オプションパネル pixel_per_char 一文字あたりの幅(pixel 値)を指定します。デフォルトは自動設定。 正しく設定されない場合は端末の font の大きさに必ず合わせてください。 pixel_per_line 一行あたりの幅(pixel 値)を指定します。デフォルトは自動設定。 正しく設定されない場合は端末の font の大きさに必ず合わせてください。 display_image インライン画像を表示します。デフォルトは ON。 auto_image インライン画像を自動で読み込みます。デフォルトは ON。 OFF の場合は、コマンド DISPLAY_IMAGE で読み込みを開始します。 max_load_image 画像を読み込む時の最大プロセス数。デフォルトは 4。1〜8 まで設定可能。 ext_image_viewer コマンド VIEW_IMAGE('I')の場合や Content-type: image/* である 画像ファイルを外部ビューワで表示します。デフォルトは ON。 OFF の場合は、インライン画像として直接表示します。 image_scale 画像のスケールを指定します。デフォルトは 100(%)。 小さい font と共に使う場合には値を小さくすると有用。 imgdisplay インライン画像を表示するためのコマンド。デフォルトは w3mimgdisplay。 下記の "w3mimgdisplay の設定" を参考にしてオプション設定してください。 必要なもの ・X11 使用時 * GdkPixbuf (0.16 以上推奨) または * Imlib-1.9.8以上 (1.9.10 以上推奨) ftp://ftp.gnome.org/pub/GNOME/sources/imlib/1.9/ * libungif-4.1.0b1 以上 ftp://prtr-13.ucsc.edu/pub/libungif/ http://prtr-13.ucsc.edu/~badger/software/libungif/ 以下は Imlib のインストールに必要 * libjpeg ftp://ftp.uu.net/graphics/jpeg/ * libpng http://www.libpng.org/pub/png/libpng.html http://libpng.sourceforge.net/ * libtiff http://www.libtiff.org/ * zlib-1.1.4 http://www.gzip.org/zlib/ * netpbm http://netpbm.sourceforge.net/ ・Linux framebuffer 使用時 * Linux の 15,16,24,32bpp PACKED-PIXELS TRUE-COLOR/DIRECT-COLOR, 8bpp PACKED-PIXELS PSEUDO-COLOR framebuffer を利用できる環境 * GdkPixbuf (0.16 以上推奨) または Imlib2 (1.0.6 以上推奨) w3mimgdisplay の設定 w3mimgdisplay は以下のオプションを受け付けますので端末に合わせて オプション設定パネルで(または -o オプションで)設定してください。 -x 端末上に画像を表示する X 方向の原点。X11 で利用する場合デフォルト は 2 ですが、xterm や kterm ではスクロールバーの幅を計算して加え ようとします。(正しく出来ないかもしれません。) Eterm では 5 にすべきかもしれません。 Linux framebuffer で利用する場合デフォルトは 0 です。 -y 端末上に画像を表示する Y 方向の原点。デフォルトは、X11 では 2、 Linux framebuffer では 0。 Eterm では 5 にすべきかもしれません。 -bg 端末の背景色。デフォルトは、X11 では自動設定、Linux framebuffer では #000000 (黒)。 #RRGGBB で指定する場合は # をエスケープして設定してください。 -anim アニメーションで表示する最大フレーム数を指定。0 の時は制限なし。 負の時は最後からのフレーム数と見なします。デフォルトは 100。 -margin 画像をクリアする領域のマージンを指定します。スクロールしたとき画 面にゴミが残ってしまう場合に指定してみてください。 デフォルトは 0。 例) w3m -o 'imgdisplay=w3mimgdisplay -x 5 -bg "#cccccc"' その他 ・GIF animation は w3m からの再描画要求に応じてフレームを書き換える だけなので勝手に動いてはくれません。絵を動かすためには 'h', 'l' 等 の適当なキーを連打してください。 ・framebuffer 描画関係には、下記 URI のコードを利用しました。 http://www.sainet.or.jp/~yamasaki/download/fb-sample.tar.gz ・Windows では標準コンソール、Cygwin rxvt、PuTTYで動作確認しています。 更新記録 2002/02/04 * ドキュメント改訂 2002/02/01 w3m-0.2.5+cvs-1.287 * 本家の CVS へマージ。 2002/01/31 w3m-0.2.4-img-2.2 * w3m-0.2.4+cvs-1.278 ベース。 2002/01/29 w3m-0.2.4-img-2.1 * w3m-0.2.4+cvs-1.268 ベース。 2002/01/28 w3m-0.2.4-img-2.0 * w3m-0.2.4+cvs-1.265 ベース。 * pixel_per_char, pixel_per_line を自動設定するようにした。 * 端末の背景色を自動設定するようにした。 * 画像処理関係のソースを image.c に分離。 2002/01/08 w3m-0.2.4-img-1.18 * w3m-0.2.4 ベース。 2001/12/29 w3m-0.2.3.2-img-1.17 * w3m-0.2.3.2+cvs-1.196 ベース。 2001/12/25 w3m-0.2.3.2-img-1.16.1 * [w3m-dev 02698] Thanks > かずひこ@kondara.org さん 2001/12/22 w3m-0.2.3.2-img-1.16 * w3m-0.2.3.2 ベース。 2001/12/20 w3m-0.2.3.1-img-1.15 * w3m-0.2.3.1 ベース。 * Content-Transfer-Encoding で送られて来た画像を表示可能にした。 2001/11/29 * ChangLog 1.71 時点の CVS ソースに対してマージ開始 2001/11/17 w3m-0.2.2-img-1.14 * w3m-0.2.2 ベース。 2001/11/14 w3m-0.2.1-inu-1.6-img-1.13 * w3m-0.2.1-inu-1.6 ベース。 2001/11/05 w3m-0.2.1-inu-1.5-img-1.12 * w3m-0.2.1-inu-1.5 ベース。 * が使えなくなっていたバグの修正。 * kterm 上で xwnmo を使った場合に対応。 2001/10/03 w3m-0.2.1-inu-1.4-img-1.11 * w3m-0.2.1-inu-1.4 ベース。 * 標準入力から読み込む時に落ちるバグの修正。 * configure の修正。Thanks > 深川さん。 2001/08/01 w3m-0.2.1-img-1.10 * 画像の位置の微調整。 * スケールのバグ修正。 2001/07/31 w3m-0.2.1-img-1.9 * initImgdisplay() の修正。Thanks > David. 2001/07/29 w3m-0.2.1-img-1.8 * configure の修正。Thanks > 坂根さん。 2001/07/28 w3m-0.2.1-img-1.7 * configure, XMakefile が patch に入って無かった。 * 画像を表示しない場合の処理をオリジナルに近づけた。 * [w3m-dev 02121] に対応。 2001/07/27 w3m-0.2.1-img-1.6 * README.img を doc-jp へ移動。doc/README.img を作成。 * インライン画像対応部分を USE_IMAGE マクロで分離。 * configure でインライン画像対応を選択できる様にした。 * configure で Imlib をチェックする様にした。 2001/07/26 w3m-0.2.1-img-1.5 * w3mimgdisplay は必要になるまで立ち上げない様にした。 * w3mimgdisplay が落ちた時に、w3mimgdisplay を再立ち上げできる様にした。 * 〜 を使う様にしてみた。 * w3mimgdisplay では SIGINT を無視する様にした。 * w3mimgsize もオプション設定できる様にした。 2001/07/07 w3m-0.2.1-img-0.3 * kterm に限らず、X11 上の端末では画像を描画できる様にした。 2001/07/06 w3m-0.2.1-img-0.2 * README.img を作成。 * kterm-6.2.0-img-0.2.patch を w3m-0.2.1-img-0.2.patch に含める様にした。 * コードの整理、安全側への修正 2001/07/04 w3m-0.2.1-img-0.1 * バージョン管理開始。 * Imlib 対応版。 2001/06/30 * XPM 版でほぼ実装完了。 2001/06/19 * MGL 版に刺激を受けて img への対応のテストを開始。 ----------------------------------- 坂本 浩則 http://www2u.biglobe.ne.jp/~hsaka/