mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-29 19:48:19 +00:00
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.
This commit is contained in:
parent
0c9a9d4219
commit
8542f66602
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user