Oppure

Loading
10/11/11 14:55
Cobra
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:

    Dim B As New Bitmap(Larghezza, Altezza)
    Dim G As Graphics = Graphics.FromImage(B)
    G.DrawImage(PictureBox1.Image, 0, 0, Larghezza, Altezza)
    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:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim SaveFileDialog As New SaveFileDialog
        SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyPictures
        SaveFileDialog.Filter = "File immagine (*jpg)|*.jpg"
        SaveFileDialog.ShowDialog(Me)

        Dim FileName As String = SaveFileDialog.FileName

End Sub


Grazie a tutti in anticipo :k:
aaa
10/11/11 14:58
nessuno
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à.
10/11/11 15:08
Cobra
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:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim SaveFileDialog As New SaveFileDialog
        SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyPictures
        SaveFileDialog.Filter = "File immagine JPEG (*.jpg)|*.jpg"
        SaveFileDialog.ShowDialog(Me)
        Dim B As New Bitmap(1280, 1024)
        Dim G As Graphics = Graphics.FromImage(B)
        G.DrawImage(PictureBox1.Image, 0, 0, 1280, 1024)
        B.Save(SaveFileDialog.FileName)
    End Sub
Ultima modifica effettuata da Cobra 10/11/11 15:08
aaa
10/11/11 15:21
nessuno
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à.
10/11/11 15:32
Cobra
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" :-|
aaa
10/11/11 15:40
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.
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à.
10/11/11 19:11
Cobra
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 10/11/11 19:12
aaa
11/11/11 9:02
nessuno
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à.