07. december 2004 - 23:01Der er
10 kommentarer og 1 løsning
recourser i program
Hvis nu at jeg har f.eks nogle billeder og lyde med i min application, hvordan kan jeg så hente den ind?
image_a = Bitmap.FromFile("C:\Documents and Settings\David Dollas\Desktop\wall11.gif")
Sådan ser det ud nu, men det passer jo ikke, hvis en anden bruger skidet.
Jeg har lave en mappe der hedder images under solution og valgt hvert billede som "Embedded Resource" for at den compiler det med, men hvordan får jeg adgang til det så ?
Hejsa. Mht. pathen kan du måske bruger namespacet.. "System.Environment.UserName" til noget?
Nu kan jeg se du henter billedet fra desktoppen. Er du så sikker på at billederne ligger ved hver enkelt bruger.. eller har du også brug for at løse det?
Public Function GetEmbeddedPicture(ByVal FileName As String) As Image Dim MyAssembly As System.Reflection.Assembly = _ Me.GetType.Assembly.GetEntryAssembly()
'Hent namespace: Dim MyNamespace As String = MyAssembly.GetName().Name
'Indlæs billede: Dim PictureStream As System.IO.Stream PictureStream = MyAssembly.GetManifestResourceStream( _ MyNamespace & "." & FileName)
If Not (PictureStream Is Nothing) Then Try Return Image.FromStream(PictureStream) Finally PictureStream.Close() End Try End If
Metoden, hvorpå billedet hentes fra assembly'et, kan i princippet benyttes til at hente al slags embedded data, da vi blot benytter en System.IO.Stream til at hente det.
Hmm .. Out Of Memory .. Det gør den dog ikke på min? På hvilken linje sker fejlen?
Husk, at selvom billederne ligger i en undermappe, skal du ikke angive undermappen i filnavnet. Hvis et billede fx ligger i "images/test.gif", skal du kalde funktionen således:
Prøv evt. denne funktion i stedet, hvis det stadig ikke virker:
Public Function GetEmbeddedPicture(ByVal FileName As String) As Bitmap Dim MyAssembly As System.Reflection.Assembly = _ Me.GetType.Assembly.GetEntryAssembly()
'Hent namespace: Dim MyNamespace As String = MyAssembly.GetName().Name
'Indlæs billede: Dim PictureStream As System.IO.Stream PictureStream = MyAssembly.GetManifestResourceStream( _ MyNamespace & "." & FileName)
If Not (PictureStream Is Nothing) Then Try Return New Bitmap(PictureStream) Finally PictureStream.Close() End Try End If
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.