gpt4 book ai didi

c# - 将 XAML 文件转换为 BitmapImage

转载 作者:太空宇宙 更新时间:2023-11-03 20:24:11 25 4
gpt4 key购买 nike

我想从 XAML(文本)文件创建一个具有所需分辨率的 BitmapImage。我该怎么做?

谢谢。

最佳答案

加载 Xaml 文件:

Stream s = File.OpenRead("yourfile.xaml");
Control control = (Control)XamlReader.Load(s);

并创建 BitmapImage:

    public static void SaveImage(Control control, string path)
{
using (MemoryStream stream = new MemoryStream())
{
GenerateImage(element, stream);
Image img = Image.FromStream(stream);
img.Save(path);
}
}

public static void GenerateImage(Control control, Stream result)
{
//Set background to white
control.Background = Brushes.White;

Size controlSize = RetrieveDesiredSize(control);
Rect rect = new Rect(0, 0, controlSize.Width, controlSize.Height);

RenderTargetBitmap rtb = new RenderTargetBitmap((int)controlSize.Width, (int)controlSize.Height, IMAGE_DPI, IMAGE_DPI, PixelFormats.Pbgra32);

control.Arrange(rect);
rtb.Render(control);

PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(rtb));
png.Save(result);
}

private static Size RetrieveDesiredSize(Control control)
{
control.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
return control.DesiredSize;
}

确保包含正确的库!这些类位于 System.Windows.Media 中。

希望这对您有所帮助!

关于c# - 将 XAML 文件转换为 BitmapImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11630071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com