Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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:

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6379
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 ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
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
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6379
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 ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
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" :-|

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6379
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 ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
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
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6379
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 ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
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.
;)

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo