Skip to content

Instantly share code, notes, and snippets.

@emoacht
Created July 30, 2022 12:45
Show Gist options
  • Save emoacht/ac9900147aacba0c99240e4839faf744 to your computer and use it in GitHub Desktop.
Save emoacht/ac9900147aacba0c99240e4839faf744 to your computer and use it in GitHub Desktop.
Get image data of FrameworkElement in PNG format.
public static class WindowHelper
{
public static byte[] GetImageData(FrameworkElement element)
{
var dpi = VisualTreeHelper.GetDpi(element);
var rtb = new RenderTargetBitmap(
(int)(element.ActualWidth * dpi.DpiScaleX),
(int)(element.ActualHeight * dpi.DpiScaleY),
dpi.PixelsPerInchX,
dpi.PixelsPerInchY,
PixelFormats.Pbgra32);
rtb.Render(element);
var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
using var ms = new MemoryStream();
encoder.Save(ms);
return ms.ToArray();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment