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 :

Dans une pictureBox tourner une image avant de l'afficher


Sujet :

C#

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Points : 240
    Points
    240
    Par défaut Dans une pictureBox tourner une image avant de l'afficher
    Bonjour,

    J'ai une form avec une pictureBox. Dans cette picture box je souhaite afficher des images que j'ai sous forme de bitmap, jusque la pas de probleme.
    Maintenant je souhaiterai "tourner" certaines de ces images. Pour commencer j'ai pris des images carres.

    Voici ce que je fais:
    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
    public partial class Form1 : Form
        {
            private Bitmap monImage1;
            private Bitmap monImage2;
            public Form1()
            {
                InitializeComponent();
                monImage1 = (Bitmap)global::test.Properties.Resources.im1.Clone(); // <- je recupere une image que j'affiche sans probleme
                monImage2 = new Bitmap(25, 25); // <- ici l'image que je souhaite stocké retourne de 180
                Graphics monGraphics = Graphics.FromImage(monImage2);
                
                monGraphics.TranslateTransform(13, 13);
                monGraphics.RotateTransform(180);
                monGraphics.DrawImage(monImage1, 0, 0);
                monGraphics.RotateTransform(180);
                monGraphics.TranslateTransform(-13, -13);
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                // Je dessine
                pictureBox1.DrawImage(monImage1, new Rectangle(0, 0, 25, 25), new Rectangle(0, 0, 25, 25), GraphicsUnit.Pixel);
                pictureBox1.DrawImage(monImage2, new Rectangle(0, 0, 25, 25), new Rectangle(50, 0, 25, 25), GraphicsUnit.Pixel);
    
                pictureBox1.Refresh();
            }
        }
    Deja que pensez-vous de code? est-ce que je fais bien comme il faut?
    Sinon mon Image2 ne veut pas s'afficher, monImage1 nickel.

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    Disons que si j'ai à tourner une image, j'utilise l'objet Bitmap (ou au pire l'objet Image

    N'utilises pas les graphiques pour faire tes rotations, cela n'est pas utile
    (enfin, pas toujours)

    Tu trouveras des exemples un peu partout sur le net et ici pour faire ce que tu souhaites réaliser

    The Monz, Toulouse
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Points : 240
    Points
    240
    Par défaut
    Salut,

    Yes , j'ai corrigé, je m'etais trompe en refaisant un exemple a partir de mon projet, mauvais copier/coller.
    Sinon effectivement, j'ai finit par trouver (de suite), pourtant j'avais quand meme chercher avant(longtemps), comme quoi...

    Voici un exemple trouvé sur le net (ici:http://blog.paranoidferret.com/index...diting-rotate/)
    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
    private Bitmap rotateImage(Bitmap b, float angle)
            {
                //create a new empty bitmap to hold rotated image
                Bitmap returnBitmap = new Bitmap(b.Width, b.Height);
                //make a graphics object from the empty bitmap
                Graphics g = Graphics.FromImage(returnBitmap);
                //move rotation point to center of image
                g.TranslateTransform((float)b.Width / 2, (float)b.Height / 2);
                //rotate
                g.RotateTransform(angle);
                //move image back
                g.TranslateTransform(-(float)b.Width / 2, -(float)b.Height / 2);
                //draw passed in image onto graphics object
                g.DrawImage(b, new Point(0, 0));
                return returnBitmap;
            }
    Sinon mon code etait effectivement a moitie foireux.

    Merci
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [Linux] Manipuler une image avant de l'afficher
    Par kripteks dans le forum Assembleur
    Réponses: 11
    Dernier message: 26/10/2014, 12h33
  3. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  4. Faire tourner une partie de l'image
    Par Antonin89 dans le forum Images
    Réponses: 3
    Dernier message: 13/06/2012, 07h16
  5. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59

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