[英]Convert byte[] to Windows.UI.Xaml.Media.Imaging.BitmapImage
[英]Convert an XAML file to a BitmapImage
我想從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
。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.