我将图片添加为文件并将类型设置为资源(参见屏幕截图) 如何在不使用resx文件等的情况下将其作为字节数组拉出来?
答案 0 :(得分:10)
事情甚至比项目标记为答案更简单!
如果单击资源中的文件并查看属性窗口,则可以将文件类型设置为二进制。 然后,您可以使用简单的
访问代码中的bytearray var byteArray = Properties.Resources.FileName;
其中FileName是资源的名称。
答案 1 :(得分:9)
该过程在How to embed and access resources by using Visual C#中描述。
基本上,它需要使用Assembly
类来使用反射。
Stream imageStream =
currentAssembly.GetManifestResourceStream("Resources.logo_foot.png");
有关如何从byte[]
获取Stream
的详细信息,请参阅How to convert an Stream into a byte[] in C#?。
答案 2 :(得分:6)
如果您不直接使用该图像(即:如果您的项目是Windows应用程序,则来自控件),那么您可以:
1-更改文件扩展名(即:* .jpg.data)
2-将“image”添加到资源文件RESX
3-使用以下命令访问字节数组:Resources.PathToImages.ResxFileName.ImageName
注意:如果添加扩展名不变的图像,RESX编译器会创建一个Bitmap属性而不是byte []属性。
答案 3 :(得分:1)
如果是针对某个网站,您可以base64
对该图片进行编码,并将其添加为src
元素的image
或background-image
定义中的CSS
1}}:
http://www.motobit.com/util/base64-decoder-encoder.asp
注意强> 这将消除将文件存储在服务器上的依赖性,这可能是好的还是坏的。