]> git.eshelyaron.com Git - emacs.git/commitdiff
Restore image scaling support when there's no native image scaling
authorLars Ingebrigtsen <larsi@gnus.org>
Wed, 12 Jun 2019 17:00:37 +0000 (19:00 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Wed, 12 Jun 2019 17:00:43 +0000 (19:00 +0200)
* lisp/net/shr.el (shr--image-type): New function.
(shr-rescale-image): Use it to allow image scaling on Emacsen with
ImageMagick support that does not have native image scaling support.

lisp/net/shr.el

index c1e9fdd30d7f957d452604d317ea12fc5e154975..a014c56948cb9487339e63390fa2eecf8a9eb260 100644 (file)
@@ -1093,6 +1093,16 @@ element is the data blob and the second element is the content-type."
        image)
     (insert (or alt ""))))
 
+(defun shr--image-type ()
+  "Emacs image type to use when displaying images.
+If Emacs has native image scaling support, that's used, but if
+not, `imagemagick' is preferred if it's present."
+  (if (or (and (fboundp 'image-transforms-p)
+              (image-transforms-p))
+         (not (fboundp 'imagemagick-types)))
+      nil
+    'imagemagick))
+
 (defun shr-rescale-image (data content-type width height
                                &optional max-width max-height)
   "Rescale DATA, if too big, to fit the current buffer.
@@ -1122,13 +1132,13 @@ width/height instead."
                (< (* width scaling) max-width)
                (< (* height scaling) max-height))
           (create-image
-           data nil t
+           data (shr--image-type) t
            :ascent 100
            :width width
            :height height
            :format content-type)
         (create-image
-         data nil t
+         data (shr--image-type) t
          :ascent 100
          :max-width max-width
          :max-height max-height