雑文発散

«前の日記(2014-08-21) 最新 次の日記(2014-08-23)» 編集
過去の日記

2014-08-22 [長年日記]

[Emacs] Emacs 内に表示した画像のサイズをモードラインに表示する image-dimensions-minor-mode.el

サーバ上にある画像ファイルの縦横サイズが知りたくて、ImageMagick の identify コマンドを使う方法を知ったりした。

そういえば Emacs で画像が表示できるんだから、そのサイズも知ることができるんじゃね?と調べてみたら、そのまま使えそうな関数 image-size があった。

create-image などで Image Descriptors(オブジェクトみたいなもの?)を作って、その Descriptors を引数にして image-size を呼び出すようだ。

具体例ではこんな感じ。

(image-size (create-image "~/Dropbox/Photos/Gundom/DSC00417.JPG"))
(610.2857142857143 . 203.42857142857142)

(WIDTH . HEIGHT) の値が返ってくる。これが何の単位なのか、ちょっと良く分かってない。オプションの第2引数 pixelsnon-nil を与えると画像のピクセルサイズを返すようになる。

(image-size (create-image "~/Dropbox/Photos/Gundom/DSC00417.JPG"))
(4272 . 2848)

まぁ、これでも目的は達せられるんだけど、どうせなら Emacs で画像を表示したら、モードラインにそのサイズも表示するような Emacs Lisp を書けば便利じゃね?と思ったのであった。

が、しかし、これと同じような思いは、きっとオレ以外にも持っているヤツがいるに違いないとググってみたら、ピッタリ同じ目的の Elisp を見つけられた。

それが image-dimensions-minor-mode.el だった。

画像を表示したところで、M-x image-dimensions-minor-mode を実行すると、表示中の画像サイズがモードラインに表示されるようになる。

例えば、これが標準状態。

標準状態

そして、M-x image-dimensions-minor-mode を実行すると、このようにモードラインに WIDTH x HEIGHT の値が表示される。

image-dimensions-minor-mode

これこれ。これがやりたかったのよ。