begin process at 2012 02 11 11:07:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

VB.NET

 > FAIRE UN SAVEPICTURE EN VB.NET

FAIRE UN SAVEPICTURE EN VB.NET


 Information sur la source

Note :
8 / 10 - par 4 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :VB.NET Source .NET ( DotNet ) Niveau :Débutant Date de création :06/08/2002 Date de mise à jour :14/11/2003 13:54:18 Vu :12 232

Auteur : LeCarto

Ecrire un message privé
Site perso
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

Encore une fonction utile de Vb6 qui a disparu de VB.Net : le SavePicture sur un contrôle PictureBox. Pour reproduire cette foncitonnalité sous VB.net, il faut procéder de la manière suivante :

Source

  • Dans le cas d'une pictureBox contenant une image, la solution est simple :
  • pictureBox.Image.save("c:\fichier.gif", ImageFormat.Gif)
  • Dans le cas d'une pictureBox contenant un objet Graphics qui subit des modifications (dessins etc.) :
  • Dim bitMap As New Bitmap(pictureBox1.width, pictureBox1.height)
  • Dim g as Graphics = Graphics.FromImage(bitMap)
  • Try
  • g.Clear(Color.White)
  • '
  • ' Insérer ici les commandes de dessin sur g
  • ' (si dessin effectué avant, passer g en paramètre à la sub ou
  • ' utiliser un g de classe)
  • '
  • bitMap.Save("C:\fichier.gif", ImageFormat.Gif)
  • Finally
  • g.Dispose
  • bitMap.Dispose()
  • End Try
Dans le cas d'une pictureBox contenant une image, la solution est simple :

pictureBox.Image.save("c:\fichier.gif",  ImageFormat.Gif)

Dans le cas d'une pictureBox contenant un objet Graphics qui subit des modifications (dessins etc.) :

        Dim bitMap As New Bitmap(pictureBox1.width, pictureBox1.height)
        Dim g as Graphics = Graphics.FromImage(bitMap)
        Try
            g.Clear(Color.White)
            '
            '  Insérer ici les commandes de dessin sur g
            '  (si dessin effectué avant, passer g en paramètre à la sub ou             
            '   utiliser un g de classe)
            '
            bitMap.Save("C:\fichier.gif", ImageFormat.Gif)
        Finally
            g.Dispose
            bitMap.Dispose()
        End Try

 Conclusion

Pour que le code ci-dessus fonctionne, il faut naturellement un contrôle pictureBox, mais surtout il faut déclarer l'import des namespaces :

Imports System.Drawing
Imports System.Drawing.Imaging

Vous pouvez sauver l'image du pictureBox au format que vous voulez, en modifiant le bitMap.save avec la valeur ImageFormat adéquat.

Solution tirée de DrGUI.Net #3, car pas dans la doc msdn :
http://msdn.microsoft.com/library/en-us/dnguine t/html/drguinet3code.asp?frame=true#top_3


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) COMPTEUR DE LIGNES D'UN PROJET VB.NET
Source avec Zip UTILISER LA MOLETTE DE LA SOURIS DANS VB
Source avec Zip Source avec une capture UITLISATION DES API : UN PETIT UPTIME SIMPLE
Source avec Zip CALCULS MATRICIELS 2
Source avec Zip MODULE DE LECTURE DES FICHIERS DBF

 Sources de la même categorie

Source .NET (Dotnet) MODIFICATION DATE DE WINDOWS EN VB.NET ET VBA par us_30
Source avec Zip Source avec une capture Source .NET (Dotnet) ENVOI DE MAIL AVEC PIÈCE JOINTE par EhJoe
Source .NET (Dotnet) AMUSONS NOUS AVEC UN LABEL ^^ par Adn56
Source avec Zip Source avec une capture Source .NET (Dotnet) UN NAVIGATEUR INTERNET EN VB.NET par azrti
Source avec Zip Source .NET (Dotnet) CONVERSION DE DEVISE MONAITAIRE VIA UN SERVICE WEB par bigmonkey7

Commentaires et avis

Commentaire de Zballl le 03/05/2003 01:17:38

Easy j'en ai justement besoin ;)

Commentaire de whiskygt le 14/11/2003 11:12:17

j'ai un probleme ca ne fonctionne po chez moi ...
il ne connai po la fonction drawinglist ...
kelkun a une idée ?

Commentaire de LeCarto le 14/11/2003 11:30:02

whiskygt> Tu peux oublier la ligne :

drawingList.DrawList(g)

C'est un truc issu du code de DrGUI, que j'aurai du virer.

Commentaire de whiskygt le 14/11/2003 11:33:14

dsl  mais meme sans ca marche po , aurai tu une idée ???
fo t'il ajouté une reference ???

Commentaire de whiskygt le 14/11/2003 11:35:30

je tape ton code dans une sub bouton_click , ca peut venir de la ?

Commentaire de LeCarto le 14/11/2003 13:55:15

Code modifé pour être plus clair :-)

Commentaire de FlashYop le 18/03/2004 22:35:40

Je remonte le sujet pour une question en rapport.

Comment faire un save d'une picturebox crée dynamiquement.

J'ai un panel1 avec plein de picturebox.

et je voudrais faire un save de toutes.
Pb si je fait :

Panel1.Controls(nb).Image.save(Application.StartupPath + "\Image\" + , ImageFormat.Gif)

Marche pas, car Image ne fait pas parti de la classe controls.

Aide pliz :)

Commentaire de LeCarto le 18/03/2004 23:51:46

Je pense qu'il faudrait que tu crées des objets pictureBox vides, que tu fasse une copie de tes Panel1.controls(nb) dedans et que tu les sauves avec leur propriété Image ensuite.

Commentaire de FlashYop le 19/03/2004 02:58:04

Le pb, c'est que je ne peut pas acceder a un attribut qui n'existe pas de la classe controls, donc meme pour en faire une copie je peut pas faire lacopie.Image=Panel1.controls(nb).Image ou autre specifique au picturebox.

Mais merci d'avoir répondu.

Commentaire de LeCarto le 19/03/2004 08:03:48

Ben essaye de faire :

dim lacopie as new PictureBox(params, dont taille de la pb d'origine)
lacopie = Panel1.controls(nb)

et ensuite, comme la copie est une pb, elle possède la propriété Image, donc tu peux aller la sauver.

Commentaire de FlashYop le 19/03/2004 18:23:22

Ca marche !

Je te remercie bcp pour ton aide.

Commentaire de HansPrestat le 05/10/2007 23:51:08

Ca enregistre bien une image mais elle est soit transparente soit toute noire. Est ce dut au fait que la taille de ma PictureBox est plus petite que celle de ma Bitmap ou bien au fait que je ne mette pas ceci:
             g.Dispose
             bitMap.Dispose()
Merci à celui qui peut me répondre ;-))

Commentaire de HansPrestat le 06/10/2007 00:45:00

Bon ben j'ai trouvé la solution à mon problême. Pour ceux qui rencontrerez le même problême il faut éviter de mettre des commandes sur g avec un stylet de la même couleur que le g.clear(Color.lenomDeLaCouleur) et penser à rajouter:

Imports System.Drawing
Imports System.Drawing.Imaging

De plus il faut utiliser le Try dans une procédure ou une méthode. Merci quand même ;-) 0:44 h du matin et les yeux tout rouge

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales