以编程方式将资源加载为字节数组

我将图像添加为文件并将类型设置为资源(参见屏幕截图)如何在不使用resx文件等的情况下将其作为字节数组拉出来?

在此处输入图像描述

如何使用Visual C#嵌入和访问资源中描述了该过程。

基本上它需要使用Assembly类来使用reflection。

 Stream imageStream = currentAssembly.GetManifestResourceStream("Resources.logo_foot.png"); 

请参阅如何在C#中将Stream转换为byte []? 有关如何从Stream获取byte[]详细信息。

事情比项目标记更简单!

如果单击资源中的文件并查看属性窗口,则可以将“文件类型”设置为二进制。 然后,您可以使用简单的代码访问代码中的bytearray

var byteArray = Properties.Resources.FileName;

其中FileName是资源的名称。

如果您不直接使用该图像(即:如果您的项目是Windows应用程序,则来自控件),那么您可以:

1-更改文件扩展名(即:* .jpg.data)

2-将“图像”添加到资源文件RESX

3-使用:Resources.PathToImages.ResxFileName.ImageName访问字节数组

注意:如果添加扩展名未更改的图像,则RESX编译器会创建Bitmap属性而不是byte []属性。

如果这是一个网站,你可以base64编码图像,并将其添加为image元素的srcCSS中的background-image定义:

http://www.motobit.com/util/base64-decoder-encoder.asp

注意 这将消除将文件存储在服务器上的依赖性,这可能是好的也可能是坏的。