Commit 8542f666 authored by Lars Ingebrigtsen's avatar Lars Ingebrigtsen

Automatically rotate images in image-mode based on Exif data

* lisp/image-mode.el (image-toggle-display-image): Get the
orientation from the Exif data, if any.
parent 0c9a9d42
......@@ -39,6 +39,7 @@
;;; Code:
(require 'image)
(require 'exif)
(eval-when-compile (require 'cl-lib))
;;; Image mode window-info management.
......@@ -744,17 +745,25 @@ was inserted."
(type (if (image--imagemagick-wanted-p filename)
'imagemagick
(image-type file-or-data nil data-p)))
;; :scale 1: If we do not set this, create-image will apply
;; default scaling based on font size.
(image (if (not edges)
(inhibit-read-only t)
(buffer-undo-list t)
(modified (buffer-modified-p))
props image)
;; Get the rotation data from the file, if any.
(setq image-transform-rotation
(or (exif-orientation
(ignore-error exif-error
(exif-parse-buffer)))
0.0))
;; :scale 1: If we do not set this, create-image will apply
;; default scaling based on font size.
(setq image (if (not edges)
(create-image file-or-data type data-p :scale 1)
(create-image file-or-data type data-p :scale 1
:max-width (- (nth 2 edges) (nth 0 edges))
:max-height (- (nth 3 edges) (nth 1 edges)))))
(inhibit-read-only t)
(buffer-undo-list t)
(modified (buffer-modified-p))
props)
;; Discard any stale image data before looking it up again.
(image-flush image)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment