如何从构建动作的图像中获取System.Drawing.Image对象标记为资源?

时间:2015-09-09 18:22:00

标签: c# wpf

我有一个wpf应用程序,并且获得了一个对代码隐藏有用的图像,其中项目中的位置类似于“projectName \ images \ pp.png”,其构建操作是“资源”(节点:不是嵌入式资源)。 我需要在代码隐藏中使用System.Drawing.Image对象。 我试过这些方法:

1

var img = new BitmapImage(new Uri(@"\images\pp.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(@"\images\pp.png");
System.Drawing.Image needObj = Image.FromStream(stream);

我有一个UnmanagedMemoryStream对象,并且在调用“Image.FromStream(stream)”时发生了InvalidArgument异常。

有谁可以告诉我为什么上述两种方法无效或如何实现呢?

0 个答案:

没有答案