Emacs で画像のスライドショーとカタログ表示
Emacs Advent Calendar jp: 2011 : ATND の 14 日目です。
昨日は uwabamiさん、明日はg000001さんです
スライドショーをする lisp と画像の非同期でサムネイル一覧を表示する image-dired の拡張を作ってみました。
# まだ Windows であんまり確認してません。。
slideview.el
ディレクトリの中のファイルや zip や tar の中にあるファイルを連続してみることができます。
画像ファイルみたり、似たようなファイルがたくさん入ってるディレクトリでファイルを見比べたりするのに使ってます。
スライドしたいファイルを開いた状態で
M-x slideview-mode
ってすると、ファイル名でソートして Space で前方へ、Backspace で後方へスライドしていきます。
僕が、普段 .emacs で設定してるのはこれぐらい。
(add-hook 'image-mode-hook 'slideview-mode)
一定時間ごとに勝手にスライドしてく slideshow は適当に作ったのが置いてあるけど (M-x slideview-start-slideshow) まだ課題があるのでちゃんと動きません。。
image+.el
画像を window サイズに合わせて最大化したり、カーソル位置の画像サイズの拡大、縮小をする拡張です。
ImageMagick が必要です。
自炊した画像ファイルを見るときに slideview と合わせて使ってます。
画像の下が切れて、スクロールするのが嫌なので作りました。
Windows でも cygwin が使える環境(shell-file-name なども適切に設定)なら動くみたいです。*1
# Windows 7 環境に移行したんだけど、日本語ファイル名に対する cygwin shell 機能がまるで動かないことに、最近になって気付いた。うーめんどくさい。(^^;
(require 'image+) (imagex-auto-adjust-mode 1)
とやっておくと画像ファイル、PDF などを開いたときに window のサイズに合わせた大きさにして表示します。
# アイコンみたいな小さいファイルを開いたときにちょっとうざい。
いろんなところに出てくる画像にちょっとした操作をしたいときには
M-x imagex-sticky-mode
とやると、以下のようなキーバインドでカーソル位置の画像を操作できるようになります。
C-c + / C-c - | 拡大、縮小 |
C-c M-l / C-c M-r | 画像の回転 |
C-c M-o | 元画像の表示 |
さらに、こうしておくと、w3m その他、どんなモードでもカーソル位置に画像があるときに同様の操作ができます。
(imagex-global-sticky-modex 1)
image-dired+.el
標準の image-dired は同期実行のため、画像ファイルをたくさん表示しようとすると、しばらく操作できなくなってしまいます。
そこで、たくさんのファイルを image-dired するときは非同期にしたり、その他細々したところをちょっと便利にしてみました。
(require 'image-dired+) (image-diredx-async-mode 1)
で、複数ファイルに対して M-x image-dired すると非同期で実行するようになります。
dired バッファにいるときと同様に x で削除マークしたファイルを削除でき、さらにどの画像が削除されるのか popup で視認できます。
最後に elisp のこと
http://www.mew.org/~kazu/doc/elisp/index.html
本筋から外れますけど、Emacs-Lisp でプログラムしたい人に是非読んでほしい読み物を紹介しておきます。
今読み返してみてもつぼを押さえていて、面白い読み物だと思います。
id:rubikitch さんの本も発売されて Emacs から lisp まで賑ってくれるといいですね。(^^)