Crée une image à partir d'un graphics

Soyez le premier à donner votre avis sur cette source.

Snippet vu 31 776 fois - Téléchargée 32 fois

Contenu du snippet

Depuis le temps que je cherchais comment crée une image à partir d'un Graphics !
Ben, j'ai enfin trouvé !!!

Je dépose donc ma solution, j'espère qu'elle vous sera utile.

Source / Exemple :


Option Explicit On
Option Strict On

Imports System.Drawing
Imports System.Drawing.Imaging

Public Class Class1

  Public Shared Sub Main()

    Dim ImageSize As New System.Drawing.Size(200, 200) '// Taille de l'image
    Dim Image As System.Drawing.Image = New System.Drawing.Bitmap(ImageSize.Width, ImageSize.Height) '// Crée l'image
    Dim Graphics As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(Image) '// Extrait le Graphics de l'image

    Graphics.Clear(System.Drawing.Color.DeepSkyBlue) '// Remplie la couleur de fond de l'image

    '// On dessine maintenant ce que l'on veut, ce sera enregistrer dans l'image
    Graphics.FillEllipse(Brushes.LightCyan, New System.Drawing.Rectangle(20, 10, 140, 100))
    Graphics.FillRectangle(New System.Drawing.SolidBrush(System.Drawing.Color.FromArgb(180, System.Drawing.Color.DarkOrange)), New System.Drawing.Rectangle(40, 60, 130, 80))
    Graphics.DrawLine(System.Drawing.Pens.Blue, New System.Drawing.Point(30, 170), New System.Drawing.Point(180, 20))

    '// On enregistre maintenant l'image dans le répertoire de l'application
    Dim ImgFormant As System.Drawing.Imaging.ImageFormat = System.Drawing.Imaging.ImageFormat.Bmp
    Image.Save("C:\\45975_Test.bmp", ImgFormant)

  End Sub

End Class

Conclusion :


Pour tester le code, crée un nouveau projet vide.
Ajouter une class et coller le code dans celle-ci.
Ne pas oublier d'ajouter la référence 'System.Drawing'

Une fois exécuté, une image se crée dans 'C:\45975_Test.bmp'.

A voir également

Ajouter un commentaire

Commentaires

Salut !

Merci pour ta source qui m'a bien aidée pour ajouter des Scrollbars à un objet Graphics

L'image obtenue est ajoutée à une pictureBox contenu dans un panel et du coup j'ai mes scrollbars.
Messages postés
2
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
9 juillet 2007

Merci,
J'ai donc utilisé la fonction BitBlt pour construire une bitmap selon la source: http://www.codeproject.com/vb/net/BitBlt.asp
Cela fonctionne parfaitement.
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Non désolé, ce n'est apparemment pas possible.
Il faut obligatoirement extraire le graphique d'une image.
De toute façon, extraire le graphique de l'image reviendra au même que le CreateGraphics.
__
Kenji
Messages postés
2
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
9 juillet 2007

Bonjour,

Merci pour cette source. Juste une petite question: Savez-vous comment créer une image à partir d'un graphics (ici vous créez une image puis un graphics). Je désirerais partir d'un control, duquel j'obtiens le graphics par control.ctreateGraphics, le transformer en image puis le mettre dans le clipboard par My.Computer.Clipboard.SetImage(Image)?

Merci d'avance
Messages postés
1447
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
23 septembre 2007
1
Parfait !
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.