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

kat*_*tit 12 .net c# embedded-resource

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

在此输入图像描述

小智 10

事情比项目标记更简单!

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

var byteArray = Properties.Resources.FileName;

其中FileName是资源的名称.

  • 使用Visual Studio Express 2010我无法更改PNG资源的类型,但我在添加为资源之前将文件重命名为.bin并且工作得非常好! (4认同)
  • 我无法在Visual Studio 2017中看到任何更改文件类型的选项 (2认同)

Ode*_*ded 9

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

基本上它需要使用Assembly类来使用反射.

Stream imageStream = 
            currentAssembly.GetManifestResourceStream("Resources.logo_foot.png");
Run Code Online (Sandbox Code Playgroud)

请参阅如何在C#中将Stream转换为byte []?对于如何获得一个细节byte[],从一个Stream.


Ale*_*lan 6

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

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

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

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

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