Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Salvare immagine da PictureBox con SaveFileDialog
Forum - C# / VB.NET - Salvare immagine da PictureBox con SaveFileDialog

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Cobra (Normal User)
Rookie


Messaggi: 29
Iscritto: 04/11/2011

Segnala al moderatore
Postato alle 15:55
Giovedì, 10/11/2011
Ciao a tutti ragazzi,
vi vorrei chiedere, se ho un'immagine caricata in una Picturebox, potrei salvare tale immagine attraverso l'uso della SaveFileDialog? Ho trovato questo codice sul web, è ottimo ma non è quello che cerco:

Codice sorgente - presumibilmente VB.NET

  1. Dim B As New Bitmap(Larghezza, Altezza)
  2.     Dim G As Graphics = Graphics.FromImage(B)
  3.     G.DrawImage(PictureBox1.Image, 0, 0, Larghezza, Altezza)
  4.     B.Save("C:\file.png")



vi posto la parte del codice per quanto riguarda la savefiledialog, solo che dopo non riesco a capire come "dire" a savefiledialog di salvare l'immagine della picturebox:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.  
  3. Dim SaveFileDialog As New SaveFileDialog
  4.         SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyPictures
  5.         SaveFileDialog.Filter = "File immagine (*jpg)|*.jpg"
  6.         SaveFileDialog.ShowDialog(Me)
  7.  
  8.         Dim FileName As String = SaveFileDialog.FileName
  9.  
  10. End Sub



Grazie a tutti in anticipo :k:


« La vita è troppo breve per avere dei nemici. »
    
(Ayrton Senna)
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:58
Giovedì, 10/11/2011
La SaveFileDialog serve *solo* a scegliere un nome di file nel filesystem. Non salva nulla.

Per salvare devi passare il nome scelto al metodo Save ...


B.Save(SaveFileDialog.FileName)


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Cobra (Normal User)
Rookie


Messaggi: 29
Iscritto: 04/11/2011

Segnala al moderatore
Postato alle 16:08
Giovedì, 10/11/2011
Ho provato come hai detto tu, solo che, eseguendo il debug del programma, al momento del salvataggio del file compare una finestra dove mi dice che vshost.exe ha smesso di funzionare

Il codice che ho immesso è questo:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.         Dim SaveFileDialog As New SaveFileDialog
  3.         SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyPictures
  4.         SaveFileDialog.Filter = "File immagine JPEG (*.jpg)|*.jpg"
  5.         SaveFileDialog.ShowDialog(Me)
  6.         Dim B As New Bitmap(1280, 1024)
  7.         Dim G As Graphics = Graphics.FromImage(B)
  8.         G.DrawImage(PictureBox1.Image, 0, 0, 1280, 1024)
  9.         B.Save(SaveFileDialog.FileName)
  10.     End Sub


Ultima modifica effettuata da Cobra il 10/11/2011 alle 16:08


« La vita è troppo breve per avere dei nemici. »
    
(Ayrton Senna)
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:21
Giovedì, 10/11/2011
A me funziona regolarmente, ovviamente deve esserci una immagine caricata nella PictureBox altrimenti cosa salvi?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Cobra (Normal User)
Rookie


Messaggi: 29
Iscritto: 04/11/2011

Segnala al moderatore
Postato alle 16:32
Giovedì, 10/11/2011
Testo quotato

Postato originariamente da nessuno:

A me funziona regolarmente, ovviamente deve esserci una immagine caricata nella PictureBox altrimenti cosa salvi?



Sisi, l'immagine è già caricata nella PictureBox, solo che mi va in crash l'applicazione, a questo proposito domando, potrebbe essere un problema legato al firewall di windows oppure al programma antivirus (uso AVG 2012) che impedisce di agire sul salvataggio del file? Perchè appare proprio la solita finestrella che recita "vshost.exe ha smesso di funzionare...  Nome evento problema: APPCRASH" :-|


« La vita è troppo breve per avere dei nemici. »
    
(Ayrton Senna)
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:40
Giovedì, 10/11/2011
Per provare basta disabilitarli ...

Ma non credo sia quello, piuttosto penso a qualche altra parte del tuo programma ...

Prova a creare un nuovo progetto di test e mettici solamente la picturebox, il tasto e il codice che hai mostrato e vedi se hai problemi.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Cobra (Normal User)
Rookie


Messaggi: 29
Iscritto: 04/11/2011

Segnala al moderatore
Postato alle 20:11
Giovedì, 10/11/2011
Testo quotato

Postato originariamente da nessuno:

Per provare basta disabilitarli ...

Ma non credo sia quello, piuttosto penso a qualche altra parte del tuo programma ...

Prova a creare un nuovo progetto di test e mettici solamente la picturebox, il tasto e il codice che hai mostrato e vedi se hai problemi.



Niente da fare, ho provato sia a disabilitare tutto (firewall + antivirus) e sia a seguire il tuo consiglio ma fa sempre lo stesso errore :hail: :hail: :hail:

Ultima modifica effettuata da Cobra il 10/11/2011 alle 20:12


« La vita è troppo breve per avere dei nemici. »
    
(Ayrton Senna)
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:02
Venerdì, 11/11/2011
Cioè anche con un progetto nuovo e solo con quegli elementi ti ha dato l'errore?

Allora è un problema della tua installazione ...

Comunque, prova a fare uno zip del progetto di test e faccelo scaricare. Vediamo se lo fa anche da noi ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
walker93 (Member)
Expert


Messaggi: 460
Iscritto: 31/01/2010

Segnala al moderatore
Postato alle 16:44
Venerdì, 11/11/2011
non basta una sola riga di codice per fare quello che vuoi???

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim SaveFileDialog As New SaveFileDialog
  2. SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyPictures
  3. SaveFileDialog.Filter = "File immagine JPEG (*.jpg)|*.jpg"
  4. SaveFileDialog.ShowDialog(Me)
  5.  
  6. ' solo questa riga:
  7. PictureBox1.Image.Save(SaveFileDialog1.FileName)



piuttosto che ricorrere a graphics, creare una bitmap nuova e metterci l'immagine ecc. basta una riga di codice per fare ciò che vuoi.
;)


Il software è come il sesso, è meglio quando è libero.
Linus Torvalds, Conferenza della Free Software Foundation, 1996 (attribuito)

Non provare mai a spiegare il computer a un profano. È più facile spiegare il sesso a una vergine.
Robert Anson Heinle
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo