diff --git a/lisp/image-mode.el b/lisp/image-mode.el index fa64f1ac03e..7cf7845e935 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el @@ -559,6 +559,8 @@ image as text, when opening such images in `image-mode'." :help "Resize image to match the window height and width"] ["Fit Image to Window (Scale down only)" image-transform-fit-both :help "Scale image down to match the window height and width"] + ["Fill Window with Image" image-transform-fill-window + :help "Resize image to fill either width or height of the window"] ["Zoom In" image-increase-size :help "Enlarge the image"] ["Zoom Out" image-decrease-size @@ -1592,6 +1594,18 @@ The percentage is in relation to the original size of the image." (setq image-transform-resize 'fit-window) (image-toggle-display-image)) +(defun image-transform-fill-window () + "Fill the window with the image while keeping image proportions. +This means filling the window with the image as much as possible +without leaving empty space around image edges. Then you can use +either horizontal or vertical scrolling to see the remaining parts +of the image." + (interactive nil image-mode) + (let ((size (image-display-size (image-get-display-property) t))) + (setq image-transform-resize + (if (> (car size) (cdr size)) 'fit-height 'fit-width))) + (image-toggle-display-image)) + (defun image-transform-set-rotation (rotation) "Prompt for an angle ROTATION, and rotate the image by that amount. ROTATION should be in degrees."