我将图像添加为文件并将类型设置为资源(请参见屏幕截图) 如何在不使用resx文件等情况下将其作为字节数组拉出?以编程方式将资源加载为字节数组
回答
该过程在How to embed and access resources by using Visual C#中描述。
本质上它需要使用反射,使用Assembly
类。
Stream imageStream =
currentAssembly.GetManifestResourceStream("Resources.logo_foot.png");
对于如何从Stream
得到byte[]
详见How to convert an Stream into a byte[] in C#?。
我不得不键入整个命名空间才能使它工作。如果您不确定您拥有哪些资源,请致电currentAssembly.GetManifestResourceNames() – 2013-04-09 13:28:27
如果这是一个网站,你可以base64
编码的图像,并在CSS
添加为image
元素的src
或在background-image
定义:
http://www.motobit.com/util/base64-decoder-encoder.asp
注意 这将删除文件存储在服务器上的依赖性,这可能会无论好坏。
事情甚至比标记作为答案更简单!
如果您单击资源中的文件并查看属性窗口,则可以将文件类型设置为二进制。 然后你可以用一个简单的
var byteArray = Properties.Resources.FileName;
其中FileName是你的资源的名称访问ByteArray的代码。
使用Visual Studio Express 2010我无法更改PNG资源的类型,但在添加资源之前将其重命名为.bin这工作非常好! – lapo 2013-12-03 13:37:42
我不能看到任何选项来更改Visual Studio 2017中的文件类型 – 2017-08-18 07:48:20
您确定您正在寻找属性窗口吗?我刚刚检查了我的VS2017安装,它绝对存在。 – 2017-09-05 13:36:46
如果你不直接使用图像(即:从如果你的项目是一个Windows应用程序的控制),那么你可以:
1-更改文件扩展名(如:* .jpg.data)
2-“形象”添加到资源文件RESX
3-访问使用字节数组:Resources.PathToImages.ResxFileName.ImageName
注:如果您使用扩展不变RESX添加图像编译器创建一个Bitmap属性而不是一个byte [] p roperty。
- 1. JSF以编程方式添加资源
- 2. WPF C#以编程方式从资源字典添加样式?
- 3. 以编程方式加载嵌入的资源文件
- 4. android以编程方式重新加载布局资源
- 5. 加载资源作为字节数组programmaticaly在C++
- 6. 如何以编程方式将图像添加到资源中?
- 7. 以编程方式将图像从文件加载到动态资源
- 8. 以编程方式指定资源ID
- 9. 以编程方式定义StackPanel资源?
- 10. 以编程方式更改资源getString()
- 11. C#以编程方式创建资源
- 12. VS2012崩溃使用字节数组加载资源文件
- 13. 以编程方式将数据源/数据集添加到LocalReport
- 14. angular2以编程方式从资源文件导入组件
- 15. 如何以程序方式加载资源名称?
- 16. 以编程方式添加布局资源
- 17. 以编程方式向Jetty添加资源
- 18. 以编程方式读取资源字符串
- 19. 如何以编程方式创建字符串资源
- 20. 以编程方式更改字符串资源在android
- 21. 动态资源无法加载以编程方式创建的控件
- 22. 以编程方式将数据添加到umbraco节点
- 23. 以编程方式将子节点添加到xamdatatree节点
- 24. 将二进制资源嵌入为字节数组的缺点?
- 25. 以编程方式为视图创建资源ID
- 26. 以编程方式添加节点
- 27. 无法以编程方式加载图像资产Xamarin iOS
- 28. 如何以编程方式将条目添加到资源文件中?
- 29. 如何以编程方式将JS和CSS资源添加到<h:head>?
- 30. 以编程方式从资源字典中添加删除项目
我不认为你在询问之前搜索过网页。 http://support.microsoft.com/kb/319292 – Oded 2012-02-28 18:44:03
是的,但它不显示如何获得'byte []' – katit 2012-02-28 18:53:14