簡體   English   中英

如何存儲圖片不使用資源

[英]How to store images do not use the resources

我有一個 C # 應用程序,我需要保留她的圖片,但我不能使用資源 (resx)。 那么有沒有替代的方法呢?

更新:答案:我的圖像是 static,為此我將使用嵌入式資源

如何創建嵌入式資源

如上所述,這實際上取決於它們是 static 還是動態的。 如果 static,您可以使用嵌入式資源(而不是像其他人提到的那樣將它們編碼為常量字節 arrays)。 如果是動態的,您可以將它們存儲在隔離存儲中。

這是一組動態圖片還是static? 如果 static,您可以將資源文件編譯為單獨的程序集,然后使用它。 如果是動態的,您需要某種類型的數據存儲來存儲文件。 如果文件系統不起作用,則可以選擇數據庫。

想到一個想法,但如果可能的話,我可能不會使用它:將圖像作為 arrays 字節放入您的代碼中。

您可以為圖像創建byte[]字段並在代碼中初始化它們。 您可以使用 CodeDOM 或 Reflection.Emit 動態生成代碼。

如果圖像不是太大,您可以在代碼中將它們編碼為巨大的常量 arrays。 這不是很優雅的解決方案,但如果沒有文件、沒有資源、沒有數據庫,還能怎么辦?

鑒於您給我們的選項,這並沒有給我們留下太多的工作余地。 根據圖像大小,您可以使用此網站將圖像編碼為 Base64,然后將它們存儲在string中。 然后您可以使用System.Convert.FromBase64String將它們從 base64 轉換回字節數組。

另一種選擇是將您的圖像存儲在 web 服務器上,並在服務器上創建一個 Web 服務,您可以使用它來檢索圖像。

不過這些都不是好方法。 第一個想法是消耗更多的 memory 然后它需要,如果你仔細想想,第二種方法有點荒謬。 使用數據庫要好得多。 您可以使用MySQL等數據庫,該數據庫將與 Windows 和 Mono 一起使用。 您還可以使用SQLite 數據庫,以便該數據庫是可移植的。 確實沒有充分的理由將其存儲在數據庫中。

我會在我的線路上使用 go:您可以使用任何提供安全加密的Mono ZIP庫來保存在磁盤上。

Zip :因為您可能會節省空間

加密:如果您需要保存一些私人數據(家庭圖像、文檔...)

可以根據您自己的應用程序邏輯對它們進行分組,或者單獨保存它們,並附加一些元文件,如果您還需要提供一些圖像信息。

Microsoft使用這種“技術”,例如DOCX文件。 嘗試將 DOCX 文件的擴展名更改為 ZIP 並將其解壓縮到文件夾中。 你會看到內容。

問候。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM