2010-03-09 16 views
6

Chciałbym wiedzieć, co następuje: Dodałem folder "Grafika" do mojego projektu i utknąłem w nim BMP. Teraz chciałbym załadować obraz z mojego kodu, ale nie wiem jak. Wiem, że jest to proste dzięki zasobom, ale czy istnieje sposób bez dodawania obrazu do zasobów? DziękiC#: Uzyskiwanie dostępu do obrazu dodanego do folderu projektu

+0

Spójrz na to pytanie http://stackoverflow.com/questions/154262/example-code-required-for-how-to-access-embedded-net-image-resources-in-c – IordanTanev

Odpowiedz

2

Kiedyś się nad tym zastanawiałem, więc wymyśliłem to i umieściłem w blog post. Na swoim przykładzie, powinno być coś takiego:

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")); 

Pamiętaj, aby oznaczyć zdjęcie jako Embedded Resource i dysponowania obrazem kiedy zrobić, aby nie dostać żadnych przecieków :)

+0

Dzięki. Co się stanie, jeśli zostawię "Treść" jako działanie Build? Proszę - do jakiego zestawu nazwisk należy? Nie jestem w stanie tego nazwać. – Petr

+0

DefaultNamespace to przestrzeń nazw podana w ustawieniach projektu. Domyślnie jest to nazwa twojego projektu. Jeśli korzystasz z akcji budowania zawartości, myślę, że plik zostanie skopiowany do katalogu wyjściowego. Jeśli to zrobisz, będziesz musiał użyć 'Image.FromFile (" pathtoimage.bmp ")' lub coś podobnego. – Svish

+0

Hmm .. Próbowałem wpisać Assembly. ale nic się nie pojawiło. – Petr

1

Aby uzyskać zasobu:

myNamespace.Properties.Resources.images.<imagename> 

można oddać, że do rodzaju trzeba (lub użyć funkcji na przykład fromfile)

0

należy określić na właściwości plików, które muszą być stosowane przy budowie aplikacji:

Kopiuj do wyjścia katalogu: Skopiuj zawsze

Następnie można uzyskać dostęp do pliku przy użyciu metody Image.FromFile, ścieżka będzie dokładnie taka sama, jak w projekcie.

+1

Jeśli to zrobisz, to to nie jest zasób osadzony. Możesz mieć poważne problemy, jeśli nie poradzisz sobie z brakującymi plikami, gdy użytkownicy właśnie skopiowali plik exe zamiast całego folderu. – RvdK

Powiązane problemy