イメージファイルをvisitすることによりImageモードが選択されます。このメジャーモードではC-c C-c
(image-toggle-display
)とタイプすることにより、Emacsバッファーでファイルのイメージ表示とイメージの元となるテキスト(またはraw
byte)表示を切り替えることができます。さらにC-c C-x
(image-toggle-hex-display
)とタイプすると、Emacsバッファー内でイメージとしてファイルを表示、または16進表記で表示を切り替えることができます。ファイルのイメージ表示は、Emacsがそのようなイメージの表示をサポートするようにコンパイルされているときだけ機能します。
イメージを表示するウィンドウよりイメージの幅または高さが大きければ、通常のポイント移動キー(C-f、C-p、...)によりイメージの他の部分が表示されます。しかしデフォルトではイメージはウィンドウにフィットするように自動的にリサイズされるので、これはオプションimage-auto-resize
とimage-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バッファーに表示されているイメージには、イメージやイメージ内ににポイントがある際の特別なキーバインディングが存在します。
イメージサイズを20%拡大します(image-increase-size
)。拡大率はプレフィックス数引数で制御します。値をnにするとサイズに1 + n / 10
という因子を乗ずる意味となるので、C-u 5 i +ならサイズを50%拡大する意味になります。
イメージサイズを20%縮小します(image-increase-size
)。縮小率はプレフィックス数引数で制御します。値をnにするとサイズに1 - n / 10
という因子を乗ずる意味となるので、C-u 3 i +ならサイズを30%縮小する意味になります。
イメージを時計回りに90度回転します(image-rotate
)。プレフィックス引数を指定すると、反時計回りに90度回転します。このコマンドはスライス(slice:
特定の領域を選択されたイメージ)では利用できないことに注意してください。
イメージを水平方向にフリップ(flip:
反転)します(image-flip-horizontally
)。これによりイメージはあたかも垂直な鏡で反射したかのように表示されます。このコマンドはスライスでは利用できないことに注意してください。
イメージを垂直方向にフリップ(flip:
反転)します(image-flip-vertically
)。これによりイメージはあたかも水平な鏡で反射したかのように表示されます。このコマンドはスライスでは利用できないことに注意してください。
イメージをファイルに保存します(image-save
)。このコマンドはイメージを保存するファイル名の入力を求めます。
イメージをクロップ(crop:
イメージの切り取りや抜き出しの意)します(image-crop
)。このコマンドは、システムにイメージのクロップやカットに使用できる外部プログラムがインストールされている場合のみ利用できます。どのプログラムを使用するかはユーザーオプションimage-crop-crop-command
により決定されます。デフォルトはImageMagick’sのconvert
プログラムです。このコマンドは、イメージの上にマウスで移動やリサイズできる重ね合わせられた長方形フレームを表示します。mをタイプするとリサイズではなくマウスでフレームを移動、sなら正方形のフレームを移動します。クロップするフレームの位置やサイズが決まったら、RETとタイプしてフレームの下にある部分を実際にクロップします。クロップせずにexitするにはqをタイプしてください。クロップしたイメージはi o、またはM-x image-saveで保存できます。
イメージから矩形(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-types
をt
に変更します。変数imagemagick-types-inhibit
は、変数imagemagick-enabled-types
の値にかかわらずmImageMagickを使わずに描画するイメージ種類のリストです(リストのデフォルトにはC
およびHTML
などが含まれ、これらはImageMagickはイメージとして描画できるが、Emacsはイメージとして描画しないものです)。ImageMagickを完全に無効にするには、imagemagick-types-inhibit
をt
に変更してください。
要求されるイメージフォーマットにたいするネイティブサポートを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でのイメージとサムネイルの閲覧を参照してください。