Chinese (People's Republic of China)  English  Français


Supinfo-Projects.com
Tous les projets des élèves ingénieurs de Supinfo



Projets
  Dernier Projet
  Les plus populaires
  Tous les Projets

135 Visiteurs
3168 Projets


My Supinfo-Projects

   Connectez-vous
   Créez un Compte


Synopsis

   829 Visites
   Note INTERNET : 17
    (19 Votants)
   0 Commentaires

   Lire l'article

Evaluez cet article

20
18
16
14
12
10
8
6
4
2
0


Commentez cet article

Auteur :

Email :

Votre commentaire :



 
2004 - Pérennisation
.Net GDI+
[40 mn de lecture - paru le 4/15/2004 4:43:05 PM - Public : Confirmé]

Auteur

degrem_mMichel DEGREMONT
Elève-Ingénieur Supinfo Paris
Promotion SUPINFO 2006

   Lui écrire
   Tous les projets de cet auteur
   Le mini-CV de cet auteur

5. Pivoter l'image

5.1. Rotation et Flip

La rotation est une opération commune dans beaucoup de programmes d'Image. La rotation tourne une image sous un angle qui est un multiple de 90. Un Flip reflète une image sur un axe. La méthode de RotateFlip nous permet de tourner et renverser des images. La valeur de RotateFlip est de l'énumération de RotateFlipType , qui définit la direction de la rotation et du Flip. Pour tourner et/ou renverser une image, un appel RotateFlip suffit.

Grâce à la méthode RotateFlip vous pourrez exécuter des rotations de 90,180 et 270 degrés. Mais aussi de effet Miroir(Flip).Le tableau ci-dessous dénombre les membres de la méthode RotateFlip. Il est facile comprendre les membres de l'énumération de RotateFlipType :

Member

Description

Rotate180FlipNone

rotation180-degrés mais sans Flip

Rotate180FlipX

rotation 180-degrés avec flip horizontal

Rotate180FlipXY

rotation 180-degrés avec flip horizontal et vertical

Rotate180FlipY

rotation180-degrés avec flip vertical

Rotate270FlipNone

rotation270-degrés sans flip

Rotate270FlipX

rotation270-degrés avec flip horizontal

Rotate270FlipXY

rotation270-degrés avec flip horizontal et vertical

Rotate270FlipY

rotation270-degrés avec flip vertical

Rotate90FlipNone

rotation90-degrés sans flip

Rotate90FlipX

rotation90-degrés avec flip horizontal

Rotate90FlipXY

rotation90-degrés avec flip horizontal et vertical

Rotate90FlipY

rotation90-degrés avec flip vertical

RotateNoneFlipNone

Pas rotation and sans flip

RotateNoneFlipX

Pas rotation, avec flip horizontal

RotateNoneFlipXY

Pas rotation, avec flip horizontal et vertical

RotateNoneFlipY

Pas rotation, avec flip vertical

Nous allons prendre que les membres qui peuvent être intéressant 90 degrés droite et gauche ainsi qu'un effet miroir pour constitué une méthode Rotation :

/// <summary>
/// Rotation de l'image
/// </summary>

public void rotation(int angleDeRotation)
{
    switch(angleDeRotation)
    {
        case 90 : theImage.RotateFlip(RotateFlipType.Rotate90FlipXY); break;
        case 180 : theImage.RotateFlip(RotateFlipType.Rotate270FlipXY); break;
        default : theImage.RotateFlip(RotateFlipType.RotateNoneFlipX); break;
    }
}


5.2. Faux effet 3D

J'appel cette méthode fausse 3D car je déforme l'image en 3 points dans l'espace

/// <summary>
/// Fausse 3D
/// </summary>

public void fausse3D()
{
    Point[] pts =
    {
        new Point(65, 65),// point crée avec X et Y
        new Point(300, 0),
        new Point(400, 400)
    };
    // créer la nouvelle image dans laquelle on va faire le traitement
    Bitmap tempImage = new Bitmap( monImage.Width,
    monImage.Height, monImage.PixelFormat);
    Graphics g = Graphics.FromImage(tempImage);
   // couleur de fond
    g.Clear(System.Drawing.Color.White);
   // exécutions de l'effet
    g.DrawImage(monImage,
    pts);
   // on libére les ressources
    g.Dispose();
    monImage.Dispose();
   // on attribut la nouvelle image dans celle d'origine
    monImage = tempImage;
}


5.3. Appel de la méthode de rotation

 

private void rotation1_Click(object sender, System.EventArgs e)
{
   String path = ImageButton1.ImageUrl.Replace("file:///","").ToString();

// instanciation de la classe traitementImage
   traitementImage monImage = new traitementImage();
// chargement de l'image
   monImage.chargementImage(path);
// on appel la méthode et on passe en parametre soit 90,180 ou 0
   monImage.rotation(90);
   String nouveaNom = Server.MapPath(Request.ApplicationPath) + "/miniaturePhoto.JPG";

// enregistrement de l'image sous un nouveau nom
   monImage.SaveImageAs(nouveaNom);
// on recharge l'image dans la page
   Imagebutton2.ImageUrl = Server.MapPath(Request.ApplicationPath) + "/miniaturePhoto.JPG";
}

ORIGINALE FLIP 90 Gauche 90 Droite
 

5.4. Appel à la méthode Fausse 3D

private void rotation1_Click(object sender, System.EventArgs e)
{
   String path = ImageButton1.ImageUrl.Replace("file:///","").ToString();

// instanciation de la classe traitementImage
   traitementImage monImage = new traitementImage();
// chargement de l'image
   monImage.chargementImage(path);
// on appel la méthode fausse 3D
   monImage.fausse3D();
   String nouveaNom = Server.MapPath(Request.ApplicationPath) + "/miniaturePhoto.JPG";

// enregistrement de l'image sous un nouveau nom
   monImage.SaveImageAs(nouveaNom);
// on recharge l'image dans la page
   Imagebutton2.ImageUrl = Server.MapPath(Request.ApplicationPath) + "/miniaturePhoto.JPG";
}

ORIGINALE DEFORMEE




Articles de la même catégorie

 Pages : Top


524 Visites
2 Commentaires
Tutorial Prolog
[15 mn de lecture - paru le 4/15/2004 11:08:32 AM - Public : Débutant]

En savoir plus


632 Visites
0 Commentaires
Programmation reseaux en .NET
[15 mn de lecture - paru le 4/15/2004 12:54:36 AM - Public : Débutant]

En savoir plus


384 Visites
0 Commentaires
Socket c# : how to create a communication module as an assembly
[20 mn de lecture - paru le 4/14/2004 11:46:15 PM - Public : Débutant]

En savoir plus

   Tous les Articles


SUPINFO Training Center peut vous proposer une formation ...

   Devenez Ingénieur Système Microsoft en 35 jours avec SUPINFO Training Center
   Devenez Certifiés Cisco en 13 jours avec SUPINFO Training Center
   Devenez Administrateur Système Microsoft avec SUPINFO Training Center
   Devenez Développeur Microsoft .NET en 13 jours avec SUPINFO Training Center



Powered by Campus-Booster Technology
Conditions d'utilisation & Copyright | Respect de la vie privée
© Copyright 1965-2006 Supinfo Paris, Paris Academy of Computer Science
Supinfo, Ecole Supérieure d'Informatique et Paris Academy Of Computer Science are trade marks.
23, rue de Château LANDON - 75010 PARIS - Phone : +33 (0) 153359 700 Fax : +33 (0) 153359 701

Web site autided by :