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