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

C# Discussion :

Axes dans une pictureBox


Sujet :

C#

  1. #21
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 104
    Points : 30
    Points
    30
    Par défaut
    Finalement le résultat est quand même bon. Il correspond bien à mes attentes.

    Encore un grand merci à tous pour votre aide !

    Sebbur

    PS : J'ai lancé un nouveau sujet concernant le traitement d'images où je galère un peu. Si l'un d'entre vous si connaît, son aide me serait précieuse.
    Voici le lien : http://www.developpez.net/forums/d15...p/#post8625059

  2. #22
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 104
    Points : 30
    Points
    30
    Par défaut
    Rebonjour à tous,

    J'ai essayé d'intégrer le code du zoom et des axes dans un programme qui permet de prendre une capture ou vidéo à travers un périphérique connecté à l'ordinateur. Mais malheureusement les deux boutons de zoom n'ont aucun effet et le checkBox arrête l'exécution de mon programme lorsque je le coche.
    Quelqu'un aurait une solution à ce problème ?

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    private Image monImage = null;
            private Image bmpAxis = null;
     
            private Rectangle rectImage = Rectangle.Empty;
     
            private void MainForm_Load(object sender, EventArgs e)
            {
                monImage = pictureBox.Image;
                bmpAxis = new Bitmap(monImage.Width, monImage.Height);
                rectImage = new Rectangle(0, 0, monImage.Width, monImage.Height);
     
                pictureBox.Invalidate();
            }
     
            Single factZoom = 1.0f;
            Single inc = 0.25f;
            Single zmax = 3.0f;
            Single zmin = 0.25f;
            private void btnZoomPlus_Click(object sender, EventArgs e)
            {
                factZoom += inc;
                factZoom = Math.Min(zmax, factZoom);
                pictureBox.Invalidate();
     
            }
     
            private void btnZoomMoins_Click(object sender, EventArgs e)
            {
     
                factZoom -= inc;
                factZoom = Math.Max(zmin, factZoom);
                pictureBox.Invalidate();
            }
     
            private void pictureBox_Paint(object sender, PaintEventArgs e)
            {
                Graphics gr = e.Graphics;
     
                gr.ResetTransform();
                Matrix m = new Matrix();
                m.Scale(factZoom, factZoom);
                gr.Transform = m;
                if (monImage != null)
                {
                    // Dessine  monImage
     
                    gr.DrawImage(monImage, rectImage);
                }
                // Dessine  bmpAxis
                if (checkBox1.Checked)
                {
                    gr.DrawImage(bmpAxis, rectImage);
                }
            }
     
            private void checkBox1_CheckedChanged(object sender, EventArgs e)
            {
                DessineSurBmpAxis();
                pictureBox.Invalidate();
            }
            // Dessine  sur la bitmap 
            private void DessineSurBitmap()
            {
     
                if (monImage == null) return;
     
     
                using (Graphics gr = Graphics.FromImage(monImage))
                {
                    Rectangle rectDessin;
                    rectDessin = new Rectangle(50, 75, 300, 200);
                    gr.DrawRectangle(Pens.White, rectDessin);
     
                    rectDessin = new Rectangle(80, 120, 300, 400);
                    gr.DrawEllipse(Pens.White, rectDessin);
     
                    Point P1 = new Point(100, 60);
                    Point P2 = new Point(25, 350);
                    gr.DrawLine(Pens.White, P1, P2);
     
                }
            }
     
            // Dessine  sur la bitmap des Axes
            private void DessineSurBmpAxis()
            {
     
                bmpAxis = new Bitmap(bmpAxis, rectImage.Size);
                using (Graphics grAxis = Graphics.FromImage(bmpAxis))
                {
                    using (Pen penAxe = new Pen(Color.Red, 4.0f))
                    {
                        grAxis.DrawLine(penAxe, 0, bmpAxis.Height - 1024,
                            bmpAxis.Width, bmpAxis.Height - 1024); // axe X, le -5 pour ne pas être sur le bord
                        grAxis.DrawLine(penAxe, 0 + 1024, 0, 0 + 1024, bmpAxis.Height);
     
                    }
                }
            }

  3. #23
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2016
    Messages : 104
    Points : 30
    Points
    30
    Par défaut
    Salut à tous,

    Je reviens vers vous parce que j'ai un souci concernant l'affichant des axes dans ma pictureBox.
    J'ai une interface qui permet de piloter une caméra et les captures prises par celle-ci s'affichent dans une pictureBox.
    Voici mon code pour le dessin des axes :

    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
     
    private Image monImage = null;
            private Image bmpAxis = null;
     
            private Rectangle rectImage = Rectangle.Empty;
     
            public Form1()
            {
                InitializeComponent();
                pictureBox1.SizeMode = PictureBoxSizeMode.Normal;//normal
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                monImage = pictureBox1.Image;
                bmpAxis = new Bitmap(monImage.Width, monImage.Height);
                rectImage = new Rectangle(0, 0, monImage.Width, monImage.Height);
     
                pictureBox1.Invalidate();
            }
     
            private void pictureBox1_Paint(object sender, PaintEventArgs e)
            {
                Graphics gr = e.Graphics;
     
                // Dessine bmpAxis
                if (checkBox1.Checked)
                {
                    gr.DrawImage(bmpAxis, rectImage);
                }
            }
     
            private void checkBox1_CheckedChanged(object sender, EventArgs e)
            {
                DessineSurBmpAxis();
                pictureBox1.Invalidate();
            }
     
            // Dessine sur la bitmap des Axes
            private void DessineSurBmpAxis()
            {
     
                bmpAxis = new Bitmap(bmpAxis, rectImage.Size);
                using (Graphics grAxis = Graphics.FromImage(bmpAxis))
                {
     
                    using (Pen penAxe = new Pen(Color.Red, 4.0f))
                    {
                        grAxis.DrawLine(penAxe, 0, bmpAxis.Height - 1024,
                            bmpAxis.Width , bmpAxis.Height - 1024); 
                        grAxis.DrawLine(penAxe, 0 + 1024, 0, 0 + 1024, bmpAxis.Height);
     
                    }
                }
            }
    Lorsque je coche ma checkBox pour afficher les axes dans la pictureBox, le message d'exception suivant apparaît :
    " Une exception non gérée du type 'System.ArgumentException' s'est produite dans PylonLiveView.exe

    Informations supplémentaires : Le paramètre n'est pas valide. "

    Je ne vois pas d'où vient mon erreur et comment la corriger. Quelqu'un aurait une idée ?

    Merci d'avance,

    Sebbur

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [VB.NET2005]Problème avec GIF dans une picturebox
    Par Dnx dans le forum Windows Forms
    Réponses: 7
    Dernier message: 20/08/2006, 13h48
  2. Dessiner dans une PictureBox
    Par pj69100 dans le forum MFC
    Réponses: 4
    Dernier message: 22/04/2006, 19h30
  3. [C#]Modifier l'image dans une PictureBox depuis un flux http
    Par f.colo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/02/2006, 10h18
  4. Rendre le fond transparent dans une picturebox
    Par fun31 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/01/2005, 19h17
  5. VB6] imprimer le texte afficher dans une picturebox
    Par Persons dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/08/2004, 12h15

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