diff --git a/src/Greenshot.Addons/Extensions/ClipboardHtmlExtensions.cs b/src/Greenshot.Addons/Extensions/ClipboardHtmlExtensions.cs
index 127e53f3a..393fed8ad 100644
--- a/src/Greenshot.Addons/Extensions/ClipboardHtmlExtensions.cs
+++ b/src/Greenshot.Addons/Extensions/ClipboardHtmlExtensions.cs
@@ -152,16 +152,16 @@ EndSelection:<<<<<<<4
/// Place the bitmap as embedded HTML on the clipboard
///
/// IClipboardAccessToken
- /// Bitmap
- public static void SetAsEmbeddedHtml(this IClipboardAccessToken clipboardAccessToken, Bitmap bitmap)
+ /// ISurface
+ public static void SetAsEmbeddedHtml(this IClipboardAccessToken clipboardAccessToken, ISurface surface)
{
using (var pngStream = new MemoryStream())
{
var pngOutputSettings = new SurfaceOutputSettings(OutputFormats.png, 100, false);
- ImageOutput.SaveToStream(bitmap, null, pngStream, pngOutputSettings);
+ ImageOutput.SaveToStream(surface, pngStream, pngOutputSettings);
pngStream.Seek(0, SeekOrigin.Begin);
// Set the PNG stream
- var htmlText = GenerateHtmlDataUrlString(bitmap.Size, pngStream);
+ var htmlText = GenerateHtmlDataUrlString(new NativeSize(surface.Width, surface.Height), pngStream);
clipboardAccessToken.SetAsHtml(htmlText);
}
}
diff --git a/src/Greenshot/Destinations/ClipboardDestination.cs b/src/Greenshot/Destinations/ClipboardDestination.cs
index 72c66f823..ace4bb58c 100644
--- a/src/Greenshot/Destinations/ClipboardDestination.cs
+++ b/src/Greenshot/Destinations/ClipboardDestination.cs
@@ -34,7 +34,6 @@ using Greenshot.Addons.Core.Enums;
using Greenshot.Addons.Extensions;
using Greenshot.Addons.Interfaces;
using Greenshot.Addons.Interfaces.Plugin;
-using Greenshot.Configuration;
#endregion
@@ -67,9 +66,31 @@ namespace Greenshot.Destinations
using (var clipboardAccessToken = ClipboardNative.Access())
{
clipboardAccessToken.ClearContents();
-
- //clipboardAccessToken.SetAsDeviceIndependendBitmap(surface);
- clipboardAccessToken.SetAsFormat17(surface);
+
+ foreach (var clipboardFormat in CoreConfiguration.ClipboardFormats)
+ {
+ switch (clipboardFormat)
+ {
+ case ClipboardFormats.DIB:
+ clipboardAccessToken.SetAsDeviceIndependendBitmap(surface);
+ break;
+ case ClipboardFormats.DIBV5:
+ clipboardAccessToken.SetAsFormat17(surface);
+ break;
+ case ClipboardFormats.PNG:
+ clipboardAccessToken.SetAsBitmap(surface, new SurfaceOutputSettings(OutputFormats.png));
+ break;
+ case ClipboardFormats.BITMAP:
+ clipboardAccessToken.SetAsBitmap(surface, new SurfaceOutputSettings(OutputFormats.bmp));
+ break;
+ case ClipboardFormats.HTML:
+ clipboardAccessToken.SetAsHtml(surface);
+ break;
+ case ClipboardFormats.HTMLDATAURL:
+ clipboardAccessToken.SetAsEmbeddedHtml(surface);
+ break;
+ }
+ }
}
exportInformation.ExportMade = true;
}