Next: , Previous: , Up: ファイルの処理   [Contents][Index]


19.19 イメージファイルのvisit

イメージファイルをvisitすることによりImageモードが選択されます。このメジャーモードではC-c C-c (image-toggle-display)とタイプすることにより、Emacsバッファーでファイルのイメージ表示とイメージの元となるテキスト(またはraw byte)表示を切り替えることができます。さらにC-c C-x (image-toggle-hex-display)とタイプすると、Emacsバッファー内でイメージとしてファイルを表示、または16進表記で表示を切り替えることができます。ファイルのイメージ表示は、Emacsがそのようなイメージの表示をサポートするようにコンパイルされているときだけ機能します。

イメージを表示するウィンドウよりイメージの幅または高さが大きければ、通常のポイント移動キー(C-fC-p、...)によりイメージの他の部分が表示されます。しかしデフォルトではイメージはウィンドウにフィットするように自動的にリサイズされるので、これはオプションimage-auto-resizeimage-auto-resizeを使用してデフォルトの挙動をカスタマイズしている場合だけ必要になります。

コマンドimage-transform-fit-to-windowによって、手動でイメージをリサイズできます。これはイメージをウィンドウの高さと幅の両方にフィットさせるコマンドで、s wにバインドされています。イメージを元サイズのパーセントでスケーリングするために使うコマンドは、s pにバインドされているimage-transform-set-percentです。スケール因子(scale factor)を指定してイメージをスケーリングにするコマンドは、s sにバインドされているimage-transform-set-scale、すべてをの変換を初期状態にリセットするコマンドは、s 0にバインドされているimage-transform-reset-to-initial、あるいはs oにバインドされているimage-transform-reset-to-originalを使用してください。

n (image-next-file)およびp (image-previous-file)を押下することにより、同一ディレクトリー内の次または前のイメージをvisitできます。これらのコマンドは次/前のイメージファイルがどれかを判断するために、“親”となるDiredバッファーを調べます。これらのコマンドはアーカイブファイルからのファイルオープン時にも機能し、その場合にはかわりにarchiveモードのバッファーを調べます。archiveバッファーやdiredの“親”バッファーが見つからなければ、Diredバッファーがオープンします。

イメージの閲覧時に、後で処理するために(たとえば別の場所へコピーするために一群のイメージを選択したいとき)ファイルをマークできると便利なことがあります。m (image-mode-mark-file)コマンドは、カレントファイルのディレクトリーを表示中のすべてのDiredバッファーのカレントファイルをマークします。そのようなバッファーがオープンされていなければ、新たなバッファーにディレクトリーがオープンされます。ファイルのマークをオフにするにはコマンドu (image-mode-mark-file)を使用します。最後にカレントバッファーのファイル名だけをkillリングにコピーしたければ、コマンドw (image-mode-copy-file-name-as-kill)を使用できます。

アニメーションが可能なイメージの場合、コマンドRET (image-toggle-animation)で、アニメーションの開始と停止ができます。オプションimage-animate-loopが非nilでなければ、アニメーションの再生は1回です。f (image-next-frame)とb (image-previous-frame)により、アニメーションの各フレームを切り替えることができます。これらのコマンドは数引数を指定することにより、指定した数の分だけ先のフレームを表示できます。F (image-goto-frame)により、特定のフレームを指定することができます。フレームは1からインデックスがつきます。a + (image-increase-speed)とタイプすると、アニメーションのスピードが早くなり、a - (image-decrease-speed)で遅くなります。またa r (image-reverse-speed)で逆再生されます。コマンドa 0 (image-reset-speed)は、スピードを元の値にリセットします。

上述したImageモード固有のキーバインディングの他にも、任意のEmacsバッファーに表示されているイメージには、イメージやイメージ内ににポイントがある際の特別なキーバインディングが存在します。

i +

イメージサイズを20%拡大します(image-increase-size)。拡大率はプレフィックス数引数で制御します。値をnにするとサイズに1 + n / 10という因子を乗ずる意味となるので、C-u 5 i +ならサイズを50%拡大する意味になります。

i -

イメージサイズを20%縮小します(image-increase-size)。縮小率はプレフィックス数引数で制御します。値をnにするとサイズに- n / 10という因子を乗ずる意味となるので、C-u 3 i +ならサイズを30%縮小する意味になります。

i r

イメージを時計回りに90度回転します(image-rotate)。プレフィックス引数を指定すると、反時計回りに90度回転します。このコマンドはスライス(slice: 特定の領域を選択されたイメージ)では利用できないことに注意してください。

i h

イメージを水平方向にフリップ(flip: 反転)します(image-flip-horizontally)。これによりイメージはあたかも垂直な鏡で反射したかのように表示されます。このコマンドはスライスでは利用できないことに注意してください。

i v

イメージを垂直方向にフリップ(flip: 反転)します(image-flip-vertically)。これによりイメージはあたかも水平な鏡で反射したかのように表示されます。このコマンドはスライスでは利用できないことに注意してください。

i o

イメージをファイルに保存します(image-save)。このコマンドはイメージを保存するファイル名の入力を求めます。

i c

イメージをクロップ(crop: イメージの切り取りや抜き出しの意)します(image-crop)。このコマンドは、システムにイメージのクロップやカットに使用できる外部プログラムがインストールされている場合のみ利用できます。どのプログラムを使用するかはユーザーオプションimage-crop-crop-commandにより決定されます。デフォルトはImageMagick’sのconvertプログラムです。このコマンドは、イメージの上にマウスで移動やリサイズできる重ね合わせられた長方形フレームを表示します。mをタイプするとリサイズではなくマウスでフレームを移動、sなら正方形のフレームを移動します。クロップするフレームの位置やサイズが決まったら、RETとタイプしてフレームの下にある部分を実際にクロップします。クロップせずにexitするにはqをタイプしてください。クロップしたイメージはi o、またはM-x image-saveで保存できます。

i x

イメージから矩形(rectangle)をカットします(image-cut)。image-crop(変数image-crop-cut-commandでイメージのカットを行う外部プログラムの定義も必要)と同じように機能しますが、このコマンドはクロップするのではなくフレーム内部分を削除して、その部分をimage-cut-colorで指定したカラーで塗りつぶします。プレフィックス引数を指定した場合には、使用するカラーの入力を求めます。

サイズや回転は“繰り返す(repeat)”ことができるコマンドです。これはプレフィックスとしてiを使うことなくイメージの調整を継続できることを意味します。

EmacsがImageMagickのサポートつきでコンパイルされている場合、さまざまなイメージを描画するのに、ImageMagickを使うことができます。変数imagemagick-enabled-typesは、EmacsがImageMagickを使って描画できるイメージの種類のリストです。リストの各要素は、ImageMagick内部でのイメージ種類にたいする名前で、シンボルまたは等価な文字列で指定します(たとえばBMP.bmpイメージです)。利用可能なイメージの種類にたいしてImageMagickを有効にするには、imagemagick-enabled-typestに変更します。変数imagemagick-types-inhibitは、変数imagemagick-enabled-typesの値にかかわらずmImageMagickを使わずに描画するイメージ種類のリストです(リストのデフォルトにはCおよびHTMLなどが含まれ、これらはImageMagickはイメージとして描画できるが、Emacsはイメージとして描画しないものです)。ImageMagickを完全に無効にするには、imagemagick-types-inhibittに変更してください。

要求されるイメージフォーマットにたいするネイティブサポートをEmacsがもたず、かつimage-use-external-converterが非nilなら、Emacsは表示の前に要求されるイメージをPNGに変換するために使用可能な外部ユーティリティーの存在有無の判定を試みます。このイメージ変換には現在のところGraphicsMagick、ImageMagick、ffmpegがサポートされています。

加えて、特定のイメージフォーマットにたいして特別なハンドラーを追加したい場合もあるかもしれません。これらのハンドラーはimage-converter-add-handler関数によって追加できます。たとえばKritaファイルを単純なイメージとして閲覧したければ、以下のように記述することができます:

(image-converter-add-handler
 "kra"
 (lambda (file data-p)
   (if data-p
       (error "Can't decode non-files")
     (call-process "unzip" nil t nil
                   "-qq" "-c" "-x" file "mergedimage.png"))))

この関数は2つのパラメーターを受け取ります。1つ目はファイル名のサフィックス、2つ目は“変換”を行う関数です。変換を行う関数が受け取るパラメーターも2つで、1つ目はファイル名かデータが格納されている文字列、2つ目は1つ目のパラメーターがデータかどうかを示すパラメーターです。またこの変換関数はフォーマットimage-convert-to-formatでイメージをカレントバッファーに出力する必要があります。

Image-Diredパッケージはイメージをサムネールとして表示するのにも使用されます。Diredでのイメージとサムネイルの閲覧を参照してください。


Next: ファイルセット, Previous: ファイル検索の便利な機能, Up: ファイルの処理   [Contents][Index]