gpt4 book ai didi

c# - 来自嵌入图像的 BitmapSource

转载 作者:行者123 更新时间:2023-12-02 17:30:42 26 4
gpt4 key购买 nike

我的目标是在 WPF 窗口上重写 OnRender 方法中绘制图像“someImage.png”,它是嵌入资源:

protected override void OnRender(System.Windows.Media.DrawingContext drawingContext)
{
base.OnRender(drawingContext);
drawingContext.DrawImage(ImageSource, Rect);
}

我找到了将图像从资源获取到 Stream 的代码:

public BitmapSource GetSourceForOnRender()
{
System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly();
Stream myStream = myAssembly.GetManifestResourceStream("KisserConsole.someImage.png");

// What to do now?

return //BitmapSource

}

但是我现在如何获取或创建 BitmapSource?

最佳答案

您可以通过设置其 StreamSource 属性从流创建 BitmapImage:

public BitmapSource GetSourceForOnRender()
{
var assembly = System.Reflection.Assembly.GetExecutingAssembly();
var bitmap = new BitmapImage();

using (var stream =
assembly.GetManifestResourceStream("KisserConsole.someImage.png"))
{
bitmap.BeginInit();
bitmap.StreamSource = stream;
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.EndInit();
}

return bitmap;
}
<小时/>

也就是说,您通常会从Resource File Pack URI创建一个BitmapImage。 ,例如

new BitmapImage(new Uri(
"pack://application:,,,/KisserConsole.someImage.png"));

关于c# - 来自嵌入图像的 BitmapSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29198137/

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