Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    problema errore gdi+ salvando immagine da picturebox in memorystream

    Ciso a tutti.
    Ho bellamente copiato dalla rete questa funzione per trasformare un'immagine in un array di byte (mi serve per salvarla poi in sql server).
    codice:
    Public Shared Sub Image2Byte(ByVal NewImage As Image, ByRef ByteArr() As Byte)  
      Dim ImageStream As System.IO.MemoryStream     
     Try      
        ReDim ByteArr(0)     
        If NewImage IsNot Nothing Then        
          ImageStream = New System.IO.MemoryStream    
          NewImage.Save(ImageStream, System.Drawing.Imaging.ImageFormat.Jpeg)       
          ReDim ByteArr(CInt(ImageStream.Length - 1))     
          ImageStream.Position = 0     
          ImageStream.Read(ByteArr, 0, CInt(ImageStream.Length))      
          MsgBox(ByteArr.Length) ' DEBUG    
        End If   
      Catch ex As Exception    
        MsgBox(ex.Message) ' DEBUG    
    
      End Try
    End sub

    Tuttavia mi da "Errore generico GDI+" quando chiama il metodo
    NewImage.Save(ImageStream, System.Drawing.Imaging.ImageFormat.Jpeg)

    L'immagine è presa da un picturebox nel quale l'ho caricata da file e passata ad un membro di tipo Image di una classe.
    Quando la classe chiama il suo metodo di salvataggio passa l'immagine alla funzione Image2Byte.

    Avete qualche suggerimento?

    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Ma sul compact framework??
    Sul XP va benissimo.
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    No, utilizzo .NET framework v 3.5.
    A te funziona?
    Tieni conto che i passaggi della mia applicazione sono:

    1) L'utente carica l'immagine nella finestra in un picturebox. Le dimensioni dell'immagine sono "strechate"
    2) Quando preme "salva" l'immagine viene salvata in un membro di una classe (è la fotografia di un utente in un DB di risorse umane)
    3) La classe chiama il suo metodo di salvataggio per salvare i dati nel DB e passa al metodo "ImgToByte" il suo membro privato "Fortografia".

    Forse è in uno di questi passaggi che si verifica l'errore?
    Tieni conto che quando la classe "Risorsa" chiama il metodo "salva" la vista di modifica è già stata chiusa.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Il codice che hai postato a me funziona correttamente.
    Io ho semplicemente provato con una PictureBox, ho scelto un'immagine per la proprietà Image, aggiunto il tuo codice e si popola la matrice di byte correttamente.


    L'unica che mi viene in mente ora è di come carichi l'immagine sulla PictureBox.
    Chi la carica e come e da dove???
    Sbagliare è umano, perseverare è diabolico.

  5. #5
    Ho provato anche a passare direttamente l'immagine della picturebox al metodo ma niente, sempre errore GDI+.
    L'immagine nella picturebox la carica l'utente utilizzando un openFileDialog.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.