2012-07-31 49 views
3

我試圖在C#中創建一個紙牌遊戲,爲此我有很多需要加載的圖像。它們都是jpg圖像,其中大約有7000個。在C#應用程序中處理大量圖像

我想確保,如果您下載遊戲,圖像將不容易訪問,這意味着它們不應該只是在應用程序的子文件夾中的JPG圖像。所以我想將它們嵌入到DLL文件中。

但我該怎麼做?我如何有效地處理這個問題?這種事情是否有一種技術,或者是另一種更好的方法?

回答

1

如果你有7000圖像,你需要一個數據庫。 Microsoft SQL Server Compact 4.0是一個選項。它小巧易用。

+0

數據庫可以幫助或矯枉過正,依賴於大量的在原來的問題沒有提及的事情。 – 2012-07-31 06:48:48

2

我想確保[...]圖像不會輕易訪問

首先,你應該問自己,爲什麼要禁止這個。如果你只是想避免別人操縱圖片,你可以將它們留在一堆子文件夾中作爲JPG,只需爲每個文件生成校驗和,並在程序加載圖片時檢查它們。

如果您想避免重複使用圖片,可以將它們留在一堆子文件夾中,但不能作爲JPG文件。使用標準的AES算法對它們進行編碼。但要小心,這不會阻止任何其他人在應用程序運行時製作屏幕截圖,因此您應該考慮這是否值得您付出努力。

編輯:如果你想嵌入圖像,因爲當你只有一個大文件部署而不是7000個單個文件時,安裝變得更容易,那麼你可以編寫一個幫助程序來編程創建資源文件。請參閱page from Microsoft,特別是關於.resource文件的部分,以瞭解如何利用ResourceWriter類來實現此目的。

1

我假定這是一個Windows應用程序

爲了嵌入一個圖像到裝配

1. Right click the Image file and Select properties 
2. In the Properties Pane Set the BuildAction as Embeded resource 

所以這個形象成爲當應用程序被編譯一個嵌入式的資源

然後,您可以從程序集中訪問圖像,例如:

global::[[MyNameSpace]].Properties.Resources.[[ImageName]] 

爲如:this.pictureBox1.Image = global::[[MyNameSpace]].Properties.Resources.[[ImageName]]

+0

...現在重複這7000次,你準備好了嗎?問題是如何以編程方式實現這一點,而不是手動,這是微不足道的。 – 2012-07-31 16:40:47

+1

以編程方式在彙編中嵌入資源:http://stackoverflow.com/questions/1107912/programmically-embed-resources-in-a-net-assembly – shajivk 2012-07-31 17:48:32