如何在 C# 中使用 ResourceManager 将 PNG 作为 byte[]
How to get PNG as byte[] using ResourceManager with C#
我将 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
。
如果文件是图像,GetObject 将 return 一个 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();
我将 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
。
如果文件是图像,GetObject 将 return 一个 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();