IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

pivoter une image


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    etudiant
    Inscrit en
    Avril 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : etudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 3
    Par défaut pivoter une image
    Bonjour,

    je voudrais faire pivoter une image en vb.
    voici mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Public Class pivot
        Dim imagetwo As Bitmap
        Dim angle As Integer
     
        Private Sub pivot_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            SetStyle(ControlStyles.DoubleBuffer, True)
            SetStyle(ControlStyles.AllPaintingInWmPaint, True)
            imagetwo = New Bitmap("l11.jpg")
            imagetwo.MakeTransparent(Color.Black)
            gameloop.start()
     
        End Sub
     
        Private Sub pivot_paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
            e.Graphics.TranslateTransform(90, 90)
            e.Graphics.RotateTransform(angle)
            e.Graphics.DrawImage(imagetwo, -30, -30, 60, 60)
            e.Graphics.ResetTransform()
     
        End Sub
     
        Private Sub gameloop_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles gameloop.Tick
     
            angle += 0
            Me.Refresh()
     
        End Sub
    End Class
    j'ai besoin de votre aide svp

  2. #2
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2014
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2014
    Messages : 39
    Par défaut
    Cet article en dit long sur ce sujet : http://support.microsoft.com/kb/80406/fr

  3. #3
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    bah c'est simple il faut faire tourner le rectangle englobant du bitmap (0,0,width,height) apres avoir
    -fixe son origine par rapport au centre du controle
    -fixe le centre de rotation (argument de RotateAt(angle,PtCentreRotation )
    -le rectangle englobant du bitmap doit etre rescale pour eviter de depasser les limites du control.

    code vb du usercontrol ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     
     
    Imports System.Drawing.Drawing2D
     
    Public Class Pivot
        Inherits UserControl
        'ce rectangle sert à faire comprendre le principe
        Dim rectBorder As Rectangle
        Dim penBorder As New Pen(Brushes.Red, 4)
     
        'le bitmap possede un rectangle englobant (0,0,width,height)
        Dim widthBmp As Integer
        Dim heigthBmp As Integer
        'on la rescale pour ne pas depasser les limites du control
        'lorsque elle pivote 
        Dim factorScale As Integer = 1.95
     
        'centre du control
        Dim centerCtrl As Point
        'origine du bitmap (doit etre fixe par rapport au centre du control)
        Dim originBmp As Point
        Dim imagetwo As Bitmap
        Dim angle As Integer
     
        Public Sub New()
     
            ' Cet appel est requis par le concepteur.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
            SetStyle(ControlStyles.DoubleBuffer, True)
            SetStyle(ControlStyles.AllPaintingInWmPaint, True)
            SetStyle(ControlStyles.ResizeRedraw, True)
     
        End Sub
        Private Sub Pivot1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            getimage()
        End Sub
        Private Sub getimage()
     
            imagetwo = New Bitmap(My.Resources.floral, Me.Width / factorScale, Me.Height / factorScale)
            imagetwo.MakeTransparent(Color.Black)
     
            'centre du control 
            centerCtrl = New Point(Me.Width / 2, Me.Height / 2)
     
            widthBmp = imagetwo.Width
            heigthBmp = imagetwo.Height
            originBmp = New Point(centerCtrl.X - widthBmp / 2, centerCtrl.Y - heigthBmp / 2)
     
            rectBorder = New Rectangle(originBmp.X, originBmp.Y, widthBmp, heigthBmp)
            gameloop.Start()
        End Sub
        Private Sub Pivot1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
     
            Dim m As Matrix = New Matrix
            m.RotateAt(angle, centerCtrl)
            e.Graphics.Transform = m
            e.Graphics.DrawImage(imagetwo, originBmp.X, originBmp.Y)
            e.Graphics.DrawRectangle(penBorder, rectBorder)
        End Sub
     
        Private Sub gameloop_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles gameloop.Tick
            angle += 15
            Me.Refresh()
        End Sub
     
     
        Private Sub Pivot_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
     
            getimage()
        End Sub
     
    End Class
    vogue la galere aux tropiques....et le climat paradisiaque....les gens sont toujours de bonne humeur...
    bon code...

Discussions similaires

  1. [Débutant] Faire pivoter une image dans un graphique
    Par MTN84 dans le forum MATLAB
    Réponses: 9
    Dernier message: 25/08/2009, 17h11
  2. Pivoter une image.
    Par SoGood dans le forum Flash
    Réponses: 2
    Dernier message: 25/03/2009, 21h39
  3. [VB.NET]Comment faire Pivoter une image
    Par vijeo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/09/2006, 08h38
  4. [VB6 ] Comment faire pivoter une IMAGE
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 09/05/2006, 17h06
  5. Faire pivoter une image dans TImage
    Par Bourak dans le forum Langage
    Réponses: 4
    Dernier message: 17/03/2006, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo