From 3e6bf7f6eecfad8bc15d373f064f80b262000424 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?= Date: Tue, 28 Jul 2026 08:32:11 +0200 Subject: [PATCH] Fix GIF loading in the WinForms Demo --- Source/Demo/WinForms/HtmlRenderingHelper.cs | 34 +++++++++------------ 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/Source/Demo/WinForms/HtmlRenderingHelper.cs b/Source/Demo/WinForms/HtmlRenderingHelper.cs index 33b6ae5e7..8a502b058 100644 --- a/Source/Demo/WinForms/HtmlRenderingHelper.cs +++ b/Source/Demo/WinForms/HtmlRenderingHelper.cs @@ -14,6 +14,7 @@ using System; using System.Collections.Generic; using System.Drawing; +using System.Drawing.Imaging; using System.IO; using System.Threading; using TheArtOfDev.HtmlRenderer.Core.Entities; @@ -71,18 +72,11 @@ public static Image TryLoadResourceImage(string src) public static XImage TryLoadResourceXImage(string src) { var img = TryLoadResourceImage(src); - XImage xImg; if (img == null) return null; - using (var ms = new MemoryStream()) - { - img.Save(ms, img.RawFormat); - xImg = img != null ? XImage.FromStream(ms) : null; - } - - return xImg; + return CreatePdfSharpImage(img); } /// @@ -107,20 +101,10 @@ public static void OnImageLoadPdfSharp(object sender, HtmlImageLoadEventArgs e) public static void ImageLoad(HtmlImageLoadEventArgs e, bool pdfSharp) { var img = TryLoadResourceImage(e.Src); - XImage xImg = null; - - if (img != null) - { - using (var ms = new MemoryStream()) - { - img.Save(ms, img.RawFormat); - xImg = img != null ? XImage.FromStream(ms) : null; - } - } object imgObj; if (pdfSharp) - imgObj = xImg; + imgObj = img != null ? CreatePdfSharpImage(img) : null; else imgObj = img; @@ -157,5 +141,17 @@ public static void ImageLoad(HtmlImageLoadEventArgs e, bool pdfSharp) if (img != null) e.Callback(imgObj); } + + /// + /// Convert image to PNG before creating because PdfSharp does not support GIF streams. + /// + private static XImage CreatePdfSharpImage(Image img) + { + using (var ms = new MemoryStream()) + { + img.Save(ms, ImageFormat.Png); + return XImage.FromStream(ms); + } + } } } \ No newline at end of file