Création d'une image à partir d'un composant Vb Net
dieuzorro
Messages postés21Date d'inscriptionjeudi 6 janvier 2005StatutMembreDernière intervention14 janvier 2008
-
10 mai 2005 à 20:37
neguibserhani
Messages postés10Date d'inscriptionsamedi 3 juillet 2004StatutMembreDernière intervention12 décembre 2005
-
21 mai 2005 à 15:31
Bonjour
Mon probléme est que je souhaite copier un composant situé sur une form dans une image pour sauver son apparence dans un fichier image. J'ai trouvé sur le net des exemples qui mon permit d'aboutir au code suivant:
Code:
,
----
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
Dim buffer As Bitmap
Dim SaveTail As Size
Dim ImagTail As Size
Dim controlGraphics As Graphics = Me.Graph_CDV.CreateGraphics ' graphique form
Const SRCCOPY As Integer = &HCC0020
'*** DEFINITION DE L'IMAGE
Dim controlSize As Size = Me.Graph_CDV.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
'*** DESSINE LE FORMULAIRE DANS LA PICTURE
StretchBlt(bufferHdc, 0, 0, controlSize.Width, controlSize.Height, _
controlHdc, 0, 0, controlSize.Width, controlSize.Height, SRCCOPY)
SaveFileDialog.FileName = "Mon Image"
SaveFileDialog.Filter = "Fichier BMP (*.BMP)|*.BMP" ' Type des fichier de sauvegarde
SaveFileDialog.ShowDialog()
If DialogResult.Yes Then
buffer.Save(SaveFileDialog.FileName, System.Drawing.Imaging.ImageFormat.Bmp)
End If
Cela fonctionne mais quand mon composant a une taille plus grande que celle de la form mon image ne conteint que la partie visible du composant le reste de l'image est noire.
Merci d'avance
A voir également:
Création d'une image à partir d'un composant Vb Net
neguibserhani
Messages postés10Date d'inscriptionsamedi 3 juillet 2004StatutMembreDernière intervention12 décembre 2005 21 mai 2005 à 15:31
Bonjour
Tu as le choix entre 2 types de résolution de problème:
problème1: je veux que mon image ne soit pas plus grande que mon form (dans ce cas la limite est le clientsize de la form)
ou
problème2: je veux que mon image ne soit pas tronquée quelquesoit sa taille; alors c'est la form qui doit changer de taille en fonction des composants qu'elle contient