Accueil > > > DESSINER AVEC LA METHODE "DRAWIMAGE"
DESSINER AVEC LA METHODE "DRAWIMAGE"
Information sur la source
Description
la methode "paintpicture" propre a VB6, simple et efficace ... ne semble plus marcher sur VB2005. j'ai passé 2 jours a chercher une methode de remplacement et comment l'utiliser. la methode : DrawImage. j'ai trouvé la source ici : http://msdn.microsoft.com/fr-fr/library/dbsak4dc.a spx cependant, tanto ils nous font déclarer un "e.graphics.drawImage" tanto d'autres choses obscure qui dans 80% des cas contraignent l'utilisation au simple "form_paint" avec les désavantage que cela peu générer. la solution est pourtant toute simple, mais comme sous codesource (comme les autres) elle n'apparait nulle part, et que je dois pas etre le seul à luter pour trouver comment remplacer FACILEMENT paintpicture, voila ce que j'ai bidouiller. (!!! CA AFFICHE SUR LA FORM !!!)
Source
- 'code a copier ou vous le souhaitez (bien placé tout de meme ^^)
-
- Private Sub afficher_une_image(ByRef emplacement As String, ByRef X As Integer, ByRef Y As Integer, ByRef largeur As Integer, ByRef hauteur As Integer)
-
- Dim image1 As System.Drawing.Image
- image1 = System.Drawing.Image.FromFile(emplacement)
- 'PictureBox1.PaintPicture(image1, souris_X, souris_Y, 1500, 1000) '=> cette methode, présenté sur de nombreux site, ne parait pas etre compatible avec VB2005
- 'apres recherche, son equivalant direct est "drawimage"
- 'lien msdn direct : http://msdn.microsoft.com/fr-fr/library/dbsak4dc.aspx
-
- If largeur = 0 Then largeur = image1.Width
- If hauteur = 0 Then hauteur = image1.Height
-
- Dim g As Graphics
- g = Me.CreateGraphics 'Pour une form
- g.DrawImage(image1, X, Y, largeur, hauteur)
-
- End Sub
-
-
- 'exemple pour appeler la fonction d'ou vous voulez.
- 'pour afficher "c:/image.jpg", à l'emplacement 100,100 sur la form, de taille 200 * 200
-
- 'avant : [VB6]
- 'dim image1 as picture
- 'set image1 = loadpicture("c:/image.jpg")
- 'form1.PaintPicture(image1, 100, 100, 200, 200)
-
- 'maintenant : [VB.net]
- afficher_une_image("C:/image.jpg", 100, 100, 200, 200)
-
-
-
-
-
- 'pour l'exemple, voici un programme complet !
- 'vous pouvez dans une form vierge copier le code suivant : (il contient deux fonction plus celle cité au dessus. N'OUBLIEZ PAS DE CHANGER LA VARIABLE IMAGEPERSO !!!!)
-
-
- Friend Class Form1
-
- Inherits System.Windows.Forms.Form
-
- 'les variables programme
- Dim souris_X As Short 'la position X de la souris en temps reel
- Dim souris_Y As Short 'la position Y de la souris en temps reel
- Dim imageperso as string = "c:/image.jpg" 'REMPLACEZ PAR CE QUE VOUS VOULEZ !!!!
-
- Private Sub Form1_MouseMove(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
- '------------------------------------------------------
- ' position de la souris
- '------------------------------------------------------
-
- souris_X = eventArgs.X
- souris_Y = eventArgs.Y
-
-
- Me.Text = "essais de DrawImage. double clic pour voir !" & " " & "[" & eventArgs.X & ";" & eventArgs.Y & "]" 'on ajoute alors au titre X et Y
-
-
- End Sub
-
- Private Sub Form1_DoubleClick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.DoubleClick
-
- '------------------------------------------------------
- ' interaction utilisateur ( = double clic souris)
- '------------------------------------------------------
-
- afficher_une_image(imageperso, souris_X, souris_Y, 200, 200)
-
-
- End Sub
-
- Private Sub afficher_une_image(ByRef emplacement As String, ByRef X As Integer, ByRef Y As Integer, ByRef largeur As Integer, ByRef hauteur As Integer)
-
- Dim image1 As System.Drawing.Image
- image1 = System.Drawing.Image.FromFile(emplacement)
- 'PictureBox1.PaintPicture(image1, souris_X, souris_Y, 1500, 1000) '=> cette methode, présenté sur de nombreux site, ne parait pas etre compatible avec VB2005
- 'apres recherche, son equivalant direct est "drawimage"
- 'lien msdn direct : http://msdn.microsoft.com/fr-fr/library/dbsak4dc.aspx
-
- If largeur = 0 Then largeur = image1.Width
- If hauteur = 0 Then hauteur = image1.Height
-
- Dim g As Graphics
- g = Me.CreateGraphics 'Pour une form
- g.DrawImage(image1, X, Y, largeur, hauteur)
-
- End Sub
-
- End Class
-
-
'code a copier ou vous le souhaitez (bien placé tout de meme ^^)
Private Sub afficher_une_image(ByRef emplacement As String, ByRef X As Integer, ByRef Y As Integer, ByRef largeur As Integer, ByRef hauteur As Integer)
Dim image1 As System.Drawing.Image
image1 = System.Drawing.Image.FromFile(emplacement)
'PictureBox1.PaintPicture(image1, souris_X, souris_Y, 1500, 1000) '=> cette methode, présenté sur de nombreux site, ne parait pas etre compatible avec VB2005
'apres recherche, son equivalant direct est "drawimage"
'lien msdn direct : http://msdn.microsoft.com/fr-fr/library/dbsak4dc.aspx
If largeur = 0 Then largeur = image1.Width
If hauteur = 0 Then hauteur = image1.Height
Dim g As Graphics
g = Me.CreateGraphics 'Pour une form
g.DrawImage(image1, X, Y, largeur, hauteur)
End Sub
'exemple pour appeler la fonction d'ou vous voulez.
'pour afficher "c:/image.jpg", à l'emplacement 100,100 sur la form, de taille 200 * 200
'avant : [VB6]
'dim image1 as picture
'set image1 = loadpicture("c:/image.jpg")
'form1.PaintPicture(image1, 100, 100, 200, 200)
'maintenant : [VB.net]
afficher_une_image("C:/image.jpg", 100, 100, 200, 200)
'pour l'exemple, voici un programme complet !
'vous pouvez dans une form vierge copier le code suivant : (il contient deux fonction plus celle cité au dessus. N'OUBLIEZ PAS DE CHANGER LA VARIABLE IMAGEPERSO !!!!)
Friend Class Form1
Inherits System.Windows.Forms.Form
'les variables programme
Dim souris_X As Short 'la position X de la souris en temps reel
Dim souris_Y As Short 'la position Y de la souris en temps reel
Dim imageperso as string = "c:/image.jpg" 'REMPLACEZ PAR CE QUE VOUS VOULEZ !!!!
Private Sub Form1_MouseMove(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
'------------------------------------------------------
' position de la souris
'------------------------------------------------------
souris_X = eventArgs.X
souris_Y = eventArgs.Y
Me.Text = "essais de DrawImage. double clic pour voir !" & " " & "[" & eventArgs.X & ";" & eventArgs.Y & "]" 'on ajoute alors au titre X et Y
End Sub
Private Sub Form1_DoubleClick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.DoubleClick
'------------------------------------------------------
' interaction utilisateur ( = double clic souris)
'------------------------------------------------------
afficher_une_image(imageperso, souris_X, souris_Y, 200, 200)
End Sub
Private Sub afficher_une_image(ByRef emplacement As String, ByRef X As Integer, ByRef Y As Integer, ByRef largeur As Integer, ByRef hauteur As Integer)
Dim image1 As System.Drawing.Image
image1 = System.Drawing.Image.FromFile(emplacement)
'PictureBox1.PaintPicture(image1, souris_X, souris_Y, 1500, 1000) '=> cette methode, présenté sur de nombreux site, ne parait pas etre compatible avec VB2005
'apres recherche, son equivalant direct est "drawimage"
'lien msdn direct : http://msdn.microsoft.com/fr-fr/library/dbsak4dc.aspx
If largeur = 0 Then largeur = image1.Width
If hauteur = 0 Then hauteur = image1.Height
Dim g As Graphics
g = Me.CreateGraphics 'Pour une form
g.DrawImage(image1, X, Y, largeur, hauteur)
End Sub
End Class
Conclusion
emplacement : emplacement sur le disque dur, en chaine de cara, du type c:/mes docs/image.jpg X : emplacement X du haut gauche de l'image sur la form (en pixel) Y : emplacement Y du haut gauche de l'image sur la form (en pixel) largeur : largeur de l'image (witdh) (en pixel) [0 = taille d'origine] hauteur : hauteur (height) de l'image (en pixel) [0 = taille d'origine]
on peu bien sure envisager très facilement d'ajouter la transparence, rotation ou encore selection d'une zone seulement de l'image a afficher. cependant, cela n'est pas le but de ma source que je voulais la PLUS SIMPLE POSSIBLE. consultez la msdn, ajoutez de "byref" et quelques structures logique pour ce faire. ca ne devrait pas poser de soucis. de meme, en ajoutant un objet dans la liste des référence a renvoyer à la fonction, on pourrait rattacher ce "paintpicture" version .net à autre chose qu'une form..
Historique
- 04 mai 2008 03:29:23 :
- 5 minutes apres : mise en forme plus clair du texte :s et ajout d'un exemple complet a copier / coller.
enjoy !
- 04 mai 2008 03:31:15 :
- encore des modif de mise en page.
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Picture d'une MDI [ par tbbuim1 ]
Bonjour à tous,J'ai une MDI contenant une image de fond dans sa propriété Picture.J'aimerais que cette dernière est la même taille que la form (FIT TO
Convertir Picture en Icon [ par ludoviclemarinel ]
Salut,Comment puis-je faire pour convertir un PictureBox.picture en un Form.Icon ?Ou plus simplement, comment puis-je "dessiner" ou faire un "paint" d
Picture box et fichier texte enregistrement ... regardez [ par mouah ]
Salut a tout ceux qui viendront voir ce message .... j'ai un gros probleme en visual basic : j'ai une form qui contient deux picturebox , jusque la ok
autosize d'une form [ par jamaica ]
Salut ,Petit souci, comment peux t'on faire quand l'on a un picture box sur une form pour que la form suive l'autosize du picture box.Merci d'avancero
Repetition de picturebox [ par marsouin ]
Bonsoir à tous Quelques questions sur les pictures Box Quel code est utilisé pour répéter une picture box exemple une picture de d
truc tout con [ par yannou24 ]
J'ai honte mais j'ai un pb tout con ! sur ma form, je change ma propriété picture pour pouvoir mettre un bmp en fond... Mais quand je redime
Champ Picture d'un Form [ par globule ]
Bonjour,J'ai renseigné en mode conception le champ picture de mon Form. Dans certain cas, j'ai besoin de faire disparaitre cette image. Comment f
decouper une form [ par kelm_by ]
salut tous le monde,est ce que il ya un moyen pour decouper une form sur la picture de cette form sans utiliser le control picture box juste la pictur
MDI Picture [ par tbbuim1 ]
Bonjour à tous J'aimerais mettre une image de fond sur le form principale de ma MDIqui "FIT TO SCREEN" selon la taille de l'écran.Sauf que Me.Autoredr
dimension image dans pictureBox [ par neg03 ]
Bonjour,je souhaiterais que lorsque je lance ma form mon image prenne directement les dimensions que je lui est passé.<code>Private Sub Form_Loa
|
Derniers Blogs
[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|