2015-12-17 21 views
0

我将一个PNG文件导入到Visual Studio 2013.我们正在使用的MIME邮件库向具有预期字节数组参数的函数的HTML邮件添加视觉效果。如何将ResourceManager返回的对象转换为字节数组?如何使用ResourceManager和C#将PNG作为byte []使用#

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

当我尝试使用.GetStream方法,错误说对象是不是甲流,并使用.GetObject代替。

+1

的PNG资源被嵌入作为'Image'对象,而不是。如果你想把这个改成一个byte [],那么你必须使用Image.Save()到MemoryStream。或者在将它添加为资源之前重命名该文件,以便VS不知道它是一个图像。 –

回答

4

getObject方法会返回一个对象为System.Drawing.Image如果该文件是一个图像

Image img = (Image)rm.GetObject("Logo") 

与图像对象,你可以直接将其保存到任何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(); 
相关问题