Foto opslaan in (appdata) en gebruiken voor in picturebox

Status
Niet open voor verdere reacties.

hanonymouss

Gebruiker
Lid geworden
7 sep 2011
Berichten
283
-Hallo iedereen,

Ik heb de volgende code geprobeerd om een fotobestand op te slaan in een map die ik in de appdata zelf heb aangemaakt. Die ik probeer te gebruiken in de picturebox.

[CPP] If Not Directory.Exists(Environ("AppData") + "\.Wallpapers") Then
Directory.CreateDirectory(Environ("AppData") + "\.Wallpapers")
End If

If Not File.Exists(Environ("AppData") + "\.Wallpapers" + "figure1.png") Then
File.Create(Environ("AppData") + "\.Wallpapers" + "figure1.png")
End If

PictureBox1.Image = New System.Drawing.Bitmap(Environ("AppData") + "\.Wallpapers" + "figure1.png")[/CPP]

Error: Ongeldige parameter

figure1.png is de naam van mijn foto.

Graag jullie hulp vorr dit probleem. :)
 
Je vergeet een \ achter \Wallpapers waar je figure1.png meegeeft en de . hoeft er ook niet voor.
Bij de anderen ook niet.
 
Laatst bewerkt:
Het aanmaken van van de folder en de afbeedling is gelukt maar krijg hem niet in de picturebox.
De pad naar de afbeelding krijg ik wel terug, dat wilt zeggen dat je gelukt is ?

[CPP] If Not Directory.Exists(Environ("AppData") + "\Wallpapers") Then
Directory.CreateDirectory(Environ("AppData") + "\Wallpapers") (lukt)
End If

If Not File.Exists(Environ("AppData") + "\Wallpapers" + "\figure1.png") Then
File.Create(Environ("AppData") + "\Wallpapers" + "\figure1.png") (lukt)
End If
Label1.Text = (Environ("AppData") + "\Wallpapers" + "\figure1.png") (lukt)

PictureBox1.Image = New System.Drawing.Bitmap(Label1.Text) (lukt niet) ongeldige parameter

PictureBox1.Image = New System.Drawing.Bitmap((Environ("AppData") + "\Wallpapers" + "\figure1.png")) (lukt ook niet) ongeldige parameter terwijl de pad klopt[/CPP]:confused:
 
Het is niet nodig om een nieuw bitmap object te maken. Probeer het zo:

Code:
PictureBox1.Image = Image.FromFile(Environ("AppData") + "\Wallpapers" + "\figure1.png")
 
als ik manueel naar appdata ga, zie ik dat hij de afbeelding heeft gemaakt, maar de afbeelding is onbruikbaar daarom dat de afbeelding niet getoond word in de picturebox.
Is er nog een ander manier ?
 
Laatst bewerkt:
Code:
File.Create(Environ("AppData") + "\Wallpapers" + "\figure1.png")

Deze code maakt een lege afbeelding bestand waar niets instaat dus ook geen afbeelding daarom dat het niet lukt.
Waarvan moet hij de foto opslaan?
 
De locatie van mijn orginele afbeelding is
HTML:
"c:\Users\Hanonymous\Desktop\icons\figure1.png"

Wat ik nu heb gedaan en het werkt! is de folder en het bestand met een jpg type aangemaakt.

[CPP] If Not Directory.Exists(Environ("AppData") + "\Wallpapers") Then
Directory.CreateDirectory(Environ("AppData") + "\Wallpapers")
End If

If Not IO.File.Exists(Environ("AppData") + "\Wallpapers" + "\figure1.png") Then
IO.File.Create(Environ("AppData") + "\Wallpapers" + "\figure1.png")
End If[/CPP]

Nadien heb ik de orginele pad van de afbeelding gekopieerd en vervangen naar de lege jpg afbeelding.

[CPP] Dim file As String = "c:\Users\Hanonymous\Desktop\icons\figure1.png"
If IO.File.Exists(Environ("AppData") + "\Wallpapers" + "\figure1.png") Then
IO.File.Copy(file, (Environ("AppData") + "\Wallpapers" + "\figure1.png"), True)
End If[/CPP]

Ik krijg dan ook de afbeelding te zien in de picturebox.

Deze manier vind ik maar gewoontjes, ik wil dat hij de afbeelding kopieert met de naam figure1.png zonder de pad naar de afbeelding te gebruiken.

Graag jullie advies
 
Laatst bewerkt door een moderator:
Een foto opslaan als je de afbeelding niet hebt kan gewoon niet. Kortom, als je de foto niet in de picturebox of ergens anders binnen je programma hebt staan, dan is het niet mogelijk deze foto op te slaan of te kopiëren naar een andere locatie. Als je het pad hebt, heb je praktisch ook gewoon de foto..

Wat (geloof ik) wel kan, is dat je de afbeelding in de recources van je project zet en die dan vanuit daar kopieert naar een andere locatie.


Succes!
 
Zoals MartinJM zei;

plaats de afbeelding in je recources en dan moet je de path van de jpeg niet meer gebruiken maar kan je het gewoon zo doen

Ik geloof dat het zo is:
Code:
Dim figure1 As New System.Drawing.Bitmap(My.Resources.MW)
        figure1.Save("figure1.jpeg") ' Slaat het op in jouw app folder en nu gewoon verplaatsen naar de appdata folder
        System.IO.File.Move((Application.StartupPath & "\figure1.jpeg"), (Environ("AppData") + "\WallPaper\" + "figure1.png"))

Veel succes, let wel op het bestand mag niet bestaan voor de File.Move methode om te kunnen werken.
 
Dank u wel voor jullie hulp, deze manier werkt :thumb:

Probleem opgelost :)

PS: Matty ware studeer je nog ?
 
@ MatthiWare: Je kan eerst checken of het bestand al bestaat om fouten te voorkomen:

[cpp]If IO.File.Exists(Environ("AppData") + "\WallPaper\figure1.png") Then IO.File.Move(Application.StartupPath & "\figure1.jpeg", Environ("AppData") + "\WallPaper\figure1.png")[/cpp]

Je kan 'm trouwens toch ook gewoon vanuit je StartupPath gebruiken ? :confused:
 
in appdata heb je minder kans dat de bestanden door de gebruiker "per ongeluk verwijderd kan worden " om zo fouten te voorkomen in u programma. Het is ook veel veiliger om in uw gegevens te bewaren.
 
@JoZ1 weet ik :p maar had gewoon geen zin heb examens dus het moest snel gaan :)
en ik heb het naar appdata gedaan omdat de hanonymouss het daar wou :)

@hanonymouss ja ik studeer nog.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan