begin process at 2010 02 09 22:47:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > DESSINER AVEC LA METHODE "DRAWIMAGE"

DESSINER AVEC LA METHODE "DRAWIMAGE"


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Source .NET ( DotNet ) Classé sous :paintpicture, drawimage, form, dessiner, picture Niveau :Débutant Date de création :04/05/2008 Date de mise à jour :04/05/2008 03:31:15 Vu :5 638

Auteur : insosama

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

 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

Source avec Zip ALBUM PHOTOS par ayoube2009
Source avec Zip Source avec une capture EDITEUR D'AUTOMATES CELLULAIRES par PADYVEN
Source avec Zip Source avec une capture PROGRAMME DE DESSIN À LA SOURIS AVEC OUVERTURE ET ENREGISTRE... par SnkVrt
Source avec Zip Source avec une capture Source .NET (Dotnet) PHOTOSEXPRESS - TRAITEMENT DE PHOTOS par zozo14
Source avec Zip Source avec une capture ÉCRIRE SUR LE WALLPAPER par Rafale71

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture RÉCUPÉRATION DES IMAGES SYSTÈME DEPUIS LEUR EXTENSION OU LEU... par PCPT
Source avec Zip Source avec une capture Source .NET (Dotnet) FUSION IMAGE AVEC SYSTEM.DRAWING.IMAGING, CLASS GRAPHICS par tomatomic
Source avec Zip Source avec une capture Source .NET (Dotnet) JEU PENDU (WIN FORM) par ahmed402
Source .NET (Dotnet) BACKGROUNDWORKER RAFRAÎCHISSEMENT DU FORMULAIRE PENDANT LA T... par fifrelin70
Source avec Zip MANIPULER UNE IMAGE par Nix

Commentaires et avis

Commentaire de insosama le 08/05/2008 03:12:19

700 fois vu ? fiou ca en fait du monde pour une petite source comme ca... pas de commentaire ou de note malgres tout ? snif ^_^

Commentaire de gillardg le 21/06/2008 19:31:21

        Me.BackgroundImage = Image.FromFile(Environment.CurrentDirectory & "\img.gif")

en une ligne ça marche aussi

Commentaire de benji2000 le 29/07/2008 14:03:23 10/10

Merci beaucoup Insosama, ton code m'a bien servi, je cherché comment apporter plusieurs images dans un PictureBox...
Ca fesait un baille que je cherché ce code, 10 pour te remercier ^^

Benji2000

Commentaire de candyraton le 06/03/2009 12:08:58

Bonjour,
Insosama:Fonctionne immédiatement, c'est agréable pour une 1° utilisation de vbexpress.
Merci
Gillardg:ta ligne est la même (regarde):
image1 = System.Drawing.Image.FromFile(emplacement)
sauf que tu ne redimensionne pas (ça m'étonne de toi un tel commentaire).

Commentaire de candyraton le 06/03/2009 13:22:52

extrait de msdn pour faire pareil dans une picturebox:
Ajoutez un bouton et une picturebox et collez ce code apres avoir declaré   Private MyImage As Bitmap:

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ShowMyImage(imageperso, 200, 200)
    End Sub
    Private Sub ShowMyImage(ByVal fileToDisplay As String, ByVal xSize As Integer, _
                           ByVal ySize As Integer)
        ' Sets up an image object to be displayed.
        If (MyImage IsNot Nothing) Then
            MyImage.Dispose()
        End If
        ' Stretches the image to fit the pictureBox.
        PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
        MyImage = New Bitmap(fileToDisplay)
        PictureBox1.ClientSize = New Size(xSize, ySize)
        PictureBox1.Image = CType(MyImage, Image)
    End Sub

Par contre, je ne sais pas comment on declare MyImage dans la fonction; msg:"la var est utilisée avant qu'une variable lui soit assignée..."

Commentaire de candyraton le 06/03/2009 13:31:19

Dim MyImage As Bitmap
MyImage = Nothing
...

 Ajouter un commentaire


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


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,936 sec (4)

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