サーバ上にある画像ファイルの縦横サイズが知りたくて、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引数 pixels
に non-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
の値が表示される。
これこれ。これがやりたかったのよ。