如何从构建动作的图像中获取System.Drawing.Image对象标记为资源?
我有一个wpf应用程序,并获得了一个对代码隐藏有用的图像,其中项目中的位置类似于“projectName images pp.png”,其构建操作是“资源”(节点: 不是嵌入式资源 )。 我需要在代码隐藏中使用System.Drawing.Image对象。 我试过这些方法:
1。
var img = new BitmapImage(new Uri(@"imagespp.png", UriKind.Relative)); var stream = img.StreamSource; System.Drawing.Image needObj = Image.FromStream(stream);
我有一个空流,所以它不起作用。
2。
private static System.IO.Stream getResource(string name) { var assembly = Assembly.GetExecutingAssembly(); string resName = assembly.GetName().Name + ".g.resources"; return assembly.GetManifestResourceStream(resName); } var stream = getResource(@"imagespp.png"); System.Drawing.Image needObj = Image.FromStream(stream);
我有一个UnmanagedMemoryStream对象,并在调用“Image.FromStream(stream)”时发生InvalidArgumentexception。
谁能告诉我为什么上述两种方法无法正常工作或如何实现呢?
WPF – 获取图像资源并转换为System.Drawing.Image
var bitmapImage = new BitmapImage(new Uri(@"pack://application:,,,/" + Assembly.GetExecutingAssembly().GetName().Name + ";component/" + "images/pp.png", UriKind.Absolute)); var encoder = new PngBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create((BitmapImage)bitmapImage)); var stream = new MemoryStream(); encoder.Save(stream); stream.Flush(); var image = new System.Drawing.Bitmap(stream);
注意:
本地程序集资源文件
编译到本地程序集中的资源文件的pack URI使用以下权限和路径:
pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.Ext
Windows窗体 – 获取图像嵌入资源:
var assembly = System.Reflection.Assembly.GetExecutingAssembly(); var stream= assembly.GetManifestResourceStream("YourAssemblyName.images.pp.png"); var image = Image.FromStream(stream);
注意:
查找嵌入的资源名称:
上述就是C#学习教程:如何从构建动作的图像中获取System.Drawing.Image对象标记为资源?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
var assembly = System.Reflection.Assembly.GetExecutingAssembly(); assembly.GetManifestResourceNames() .Where(x => x.EndsWith("pp.png")) //Comment this line to find all resource names .ToList() .ForEach(resource => { MessageBox.Show(resource); });
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/998028.html