31.19 Viewing Image Thumbnails in Dired

Image-Dired is a facility for browsing image files. It provides viewing the images either as thumbnails or in full size, either inside Emacs or through an external viewer. This is different from Image mode (see Viewing Image Files) for visiting an image file in the Emacs buffer.

To enter Image-Dired, mark the image files you want to look at in the Dired buffer, using m as usual. Then type C-t d (image-dired-display-thumbs). This creates and switches to a buffer containing Image-Dired, corresponding to the marked files.

You can also enter Image-Dired directly by typing M-x image-dired. This prompts for a directory; specify one that has image files. This creates thumbnails for all the images in that directory, and displays them all in the thumbnail buffer. The thumbnails are generated in the background and are loaded as they become available.

With point in the thumbnail buffer, you can type RET (image-dired-display-this) to display the image in another window. Use the standard Emacs movement key bindings or the arrow keys to move around in the thumbnail buffer. For easy browsing, use SPC (image-dired-display-next) to advance and display the next image. Typing DEL (image-dired-display-previous) backs up to the previous thumbnail and displays that instead.

Type C-RET (image-dired-thumbnail-display-external) to display the image in an external viewer. You must first configure image-dired-external-viewer.

You can delete images through Image-Dired also. Type d (image-dired-flag-thumb-original-file) to flag the image file for deletion in the Dired buffer. Alternatively, you can remove an image’s thumbnail from the thumbnail buffer without flagging the image for deletion, by typing C-d (image-dired-delete-char).

You could also use Image-Dired for “inline” operations (i.e., right into the Dired buffer). Type C-t C-t, and the thumbnails of the selected images in Dired will appear in front of their names (image-dired-dired-toggle-marked-thumbs). C-t i and C-t x will display the image under the point in Emacs or with the external viewer, respectively.

More advanced features include image tags, which are metadata used to categorize image files. The tags are stored in a plain text file configured by image-dired-tags-db-file.

To tag image files, mark them in the Dired buffer (you can also mark files in Dired from the thumbnail buffer by typing m) and type C-t t (image-dired-tag-files). This reads the tag name in the minibuffer. To mark files having a certain tag, type C-t f (image-dired-mark-tagged-files). After marking image files with a certain tag, you can use C-t d to view them.

You can also tag a file directly from the thumbnail buffer by typing t t, and you can remove a tag by typing t r. There is also a special tag called “comment” for each file (it is not a tag in the exact same sense as the other tags, it is handled slightly differently). That is used to enter a comment or description about the image. You comment a file from the thumbnail buffer by typing c. You will be prompted for a comment. Type C-t c to add a comment from Dired (image-dired-dired-comment-files). C-t e will bring a buffer to edit comment and tags (image-dired-dired-edit-comment-and-tags).

Files that are marked in Dired will also be marked in Image-Dired if image-dired-thumb-visible-marks is non-nil (which is the default).

Image-Dired also provides simple image manipulation. In the thumbnail buffer, type L to rotate the original image 90 degrees anti clockwise, and R to rotate it 90 degrees clockwise. This rotation is lossless, and uses an external utility called jpegtran, which you need to install first.