我將圖像添加爲文件並將類型設置爲資源(請參見屏幕截圖) 如何在不使用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