如何使用带有C#

时间:2015-12-17 13:18:00

标签: c# png bytearray resourcemanager

我将PNG文件导入Visual Studio 2013.我们正在使用的MIME邮件库为HTML邮件添加了视觉效果,其中包含一个需要字节数组参数的函数。如何将ResourceManager返回的对象转换为字节数组?

ResourceManager rm;
rm = new ResourceManager("Foo.Properties.Resources", typeof(MYFORM).Assembly);
var obj = rm.GetObject("Logo");

当我尝试使用.GetStream方法时,错误表示该对象不是流,而是使用.GetObject

1 个答案:

答案 0 :(得分:4)

如果文件是Image

,GetObject将返回System.Drawing.Image对象
Image img = (Image)rm.GetObject("Logo")

使用Image对象,您可以直接将其保存到任何System.IO.Stream对象

MemoryStream stream = new MemoryStream();
img.Save(stream, ImageFormat.Png);

现在,您可以使用Stream.ToArray

复制字节
byte[] bytes = stream.ToArray();

或直接将其保存到文件

img.Save(Application.StartupPath + "/testImage.jpg")

别忘了关闭所有使用过的流

Stream.Close();