Sauvegarde d'un graphique fait en gdi+

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 253 fois - Téléchargée 38 fois

Contenu du snippet

Bah voilà c en fait un code ki sert à sauvegarder un graphique ds un PictureBox que j'ai fait à l'aide de l'outil Paint en GDI+

Source / Exemple :


Private buffer As Bitmap
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As IntPtr, ByVal X As Integer, _
ByVal Y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, _
ByVal hSrcDC As IntPtr, ByVal xSrc As Integer, ByVal ySrc As Integer, _
ByVal nSrcWidth As Integer, ByVal nSrcHeight As Integer, ByVal dwRop As Integer) As Integer

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim controlGraphics As Graphics = Me.PictureBox_Graphique.CreateGraphics ' graphique form
Const SRCCOPY As Integer = &HCC0020
Dim controlSize As Size
controlSize = Me.PictureBox_Graphique.ClientSize()
buffer = New Bitmap(controlSize.Width, controlSize.Height)
Dim bufferGraphics As Graphics = controlGraphics.FromImage(buffer)
Dim bufferHdc As IntPtr = bufferGraphics.GetHdc 'hdc de la form
Dim controlHdc As IntPtr = controlGraphics.GetHdc
StretchBlt(bufferHdc, 0, 0, controlSize.Width, controlSize.Height, _
controlHdc, 0, 0, controlSize.Width, controlSize.Height, SRCCOPY)
bufferGraphics.ReleaseHdc(bufferHdc)
controlGraphics.ReleaseHdc(controlHdc)
buffer.Save("C:\Documents and Settings\Ludo\Bureau\eeeezzz.Jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

A voir également

Ajouter un commentaire Commentaires
Messages postés
1447
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
23 septembre 2007
2
Ben pour le gif faut que tu mette une couleur de transparence à ta form qui correspond à la couleur de fond de ton gif non transparent.
Messages postés
1016
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008

alors voici un exemple a l'etat brut du gdi pour les images.

cet exemple etait pour des smileys, d'ou la boucle pour repeindre cetaine parties. il prend aussi tout une serie de smileys issu d'un seul fichier bmp, d'ou la capture de certaines coordonnées precises. Il verifie aussi l'existence du fichier sur le disque dur

****************
If System.IO.File.Exists(PathE & RPChar & ".gif") = False Then
Dim thisExe As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
Dim file As System.IO.Stream = thisExe.GetManifestResourceStream("Client_Smail.R_All.bmp")
Dim NewImage1 As Image = Image.FromStream(file)

Dim destRect As New Rectangle(0, 0, 25, 22)
Dim srcRect As New Rectangle(PosX, PosY, 25, 22)
Dim units As GraphicsUnit = GraphicsUnit.Pixel

Dim newBitmap As Bitmap = New Bitmap(25, 22, Imaging.PixelFormat.Format64bppPArgb)
Dim g As Graphics = Graphics.FromImage(newBitmap)
g.DrawImage(NewImage1, destRect, srcRect, units)
'newBitmap.MakeTransparent(Color.FromArgb(255, 0, 0, 255))

Dim v As Integer
Dim b As Integer

For v = 0 To newBitmap.Width - 1
For b = 0 To newBitmap.Height - 1
Dim Pixel As Drawing.Color = newBitmap.GetPixel(v, b)
If Pixel.R 0 And Pixel.G 0 And Pixel.B = 255 Then
newBitmap.SetPixel(v, b, Color.FromArgb(128, 255, 255, 255))
ElseIf Pixel.R 166 And Pixel.G 202 And Pixel.B = 240 Then
newBitmap.SetPixel(v, b, Color.FromArgb(255, 255, 255, 0))
End If
Next
Next
newBitmap.Save(PathE & RPChar & ".gif", ImageFormat.Gif)
End If
********************


Nb : je cherche a faire la transparence en sauvegarde, mais la je bloque royalement, si qq'un a une solution, car pour le gif c'est foutu je crois, il doit y avoir une programmation specifique

j'espere que ca pourra servir
Messages postés
440
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2010
1
lolllllllll c clair c pô une partie de plaisir car en + c en anglais snif snif!!!!!!! mai bon je vai regarder merci
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

ui t'a raison
pourant dans microapp yavais une source d'un Paint ultrasimple
idem dans MSDN c bourré d'exemple GDI+

au cas ou tu l'ai pas acheté
www.MSDN.com
ya une belle case recherche
et des option => library pour la doc
Sample & &download pour les exmeple enfin ca site c toutes la doc en ligne alors la pas la peie de dire que c pas sur le site

mais je sais que c pas une partie de plaisir ++
Messages postés
440
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2010
1
et moi même j'ai microapplication vb.net collection réference(quand même 1200 pages) et il n'y a pô une ligne sur le gdi+ maintenant je ne vai pô me ruiner lolll en boukin tout ca pour éviter de me servir d'api lolllllllll!!!!!!!!
Afficher les 10 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.