2010-03-09 79 views
6

我想知道以下內容:我將文件夾「圖形」添加到我的項目中,並在其中卡住一個BMP。現在我想從我的代碼中加載圖像,但我無法弄清楚如何。我知道它簡單的資源,但有沒有一種方式,而不是將圖像添加到資源?由於C#:訪問圖像添加到項目文件夾

+0

看看這個問題http://stackoverflow.com/questions/154262/example-code-required-for-how-to-access-embedded-net-image-resources-in-c – IordanTanev

回答

2

我也曾想過這個,所以我想通了,並把它放在blog post。這樣做,你沒有得到任何泄漏:)

+0

謝謝。如果我將「內容」作爲構建操作離開,該怎麼辦? 而且請 - 大會屬於哪個namesapce?我無法稱呼它。 – Petr

+0

DefaultNamespace是您在項目設置中給出的命名空間。它默認爲您的項目名稱。如果您使用Content Build Action,我認爲該文件將被複制到您的輸出目錄。如果你這樣做,你將不得不使用'Image.FromFile(「pathtoimage.bmp」)'或類似的東西。 – Svish

+0

嗯..我試圖打字大會。但沒有出現。 – Petr

1

爲了獲得資源:

myNamespace.Properties.Resources.images.<imagename> 

您可以強制轉換成你需要的類型(或使用例如FROMFILE功能)

0

您應該是它必須在文件屬性中指定部署構建應用程序時:

複製到輸出目錄:複製始終

然後,您可以使用Image.FromFile方法訪問該文件,路徑將與項目中的路徑完全相同。

+1

如果你這樣做,然後它不是一個嵌入式資源。如果用戶只複製了exe文件而不是整個文件夾,則不會處理丟失的文件,您可能會遇到一些嚴重問題。 – RvdK

3

你當

var a = Assembly.GetExecutingAssembly(); // Or another Get method if you need to get it from some other assembly 

var image = Image 
    .FromStream(a.GetManifestResourceStream("DefaultNameSpace.Graphics.image.bmp")); 

記住圖像標記爲嵌入的資源和處置的圖像:對於你的榜樣,它應該是這樣的可直接從文件系統加載圖像

Image img = Image.FromFile(「\ Graphics \ ImageName.bmp」);

MSDN文檔在這裏

http://msdn.microsoft.com/en-us/library/system.drawing.image.fromfile.aspx

很明顯,你需要知道你是從裝載目錄和名稱。

相關問題