emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-29 6cc6455e931: Fix SVG colors (bug#56182)


From: Alan Third
Subject: emacs-29 6cc6455e931: Fix SVG colors (bug#56182)
Date: Wed, 13 Sep 2023 15:20:41 -0400 (EDT)

branch: emacs-29
commit 6cc6455e931913e42ef844c4a7d6ddcd0bf53788
Author: Alan Third <alan@idiocy.org>
Commit: Alan Third <alan@idiocy.org>

    Fix SVG colors (bug#56182)
    
    * src/image.c (svg_load_image): Reverse the R and B bytes in the
    Windows colors before using them to generate the SVG.
---
 src/image.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/image.c b/src/image.c
index 8ee802a9d62..c717ac88dca 100644
--- a/src/image.c
+++ b/src/image.c
@@ -11423,6 +11423,18 @@ svg_load_image (struct frame *f, struct image *img, 
char *contents,
         img->background_valid = 1;
       }
 
+#if HAVE_NTGUI
+    /* Windows stores the image colours in BGR format, and SVG expects
+       them in RGB.  */
+    foreground = (foreground & 0x0000FF) << 16
+      | (foreground & 0xFF0000) >> 16
+      | (foreground & 0x00FF00);
+
+    background = (background & 0x0000FF) << 16
+      | (background & 0xFF0000) >> 16
+      | (background & 0x00FF00);
+#endif
+
     wrapped_contents = xmalloc (buffer_size);
 
     if (buffer_size <= snprintf (wrapped_contents, buffer_size, wrapper,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]