 |
Opérations sur les Bitmaps: Tourner une Image |
|
|
|
Tourner une image consiste à changer son orientation angulaire.
La classe Image supporte cette opération (avec des options quelque peu limitée)
par sa méthode RotateFlip(). La valeur que vous passez comme argument déterminerait
comment l'opération se passerait.
|
Les membres de l'énumération RotateFlipType qui
sont utilisés pour tourner une image sont:
- RotateNoneFlipNone: Rien ne se passerait
- Rotate90FlipNone: L'image tournerait à 90° dans le sense d'une
montre. Comme résultat, après avoir appelé la méthode avec ce membre, ce
qui se trouve à gauche de la photo originale serait positionné au haut de
la photo. Voici un
exemple:
| Photo Originale |
|
Après avoir appelé la méthode |
 |
=> |
 |
Remarquez que, après que la méthode ait été appelée,
la personne porte encore la télécommande avec la main droite. Voici un exemple:private void btnRotate_Click(object sender, EventArgs e)
{
Bitmap bmpPicture = new Bitmap("person1.gif");
bmpPicture.RotateFlip(RotateFlipType.Rotate90FlipNone);
CreateGraphics().DrawImage(bmpPicture, 10, 10);
}
|
- Rotate180FlipNone: La photo est tournée à 90° dans le sense des aiguilles d'une montre
deux fois. Ceci signifie que la photo est d'abord tournée à 90°, puis tournée
encore à
90°. Comme résultat, après avoir appelé la méthode avec ce membre, ce
qui se trouve à gauche de la photo originale deviendrait positionné à
droite mais ce qui est en haut serait positionné au bas de la photo. Voici un
exemple:
| Photo Originale |
 |
| Après avoir appelé la méthode |
 |
|
|
Remarquez que, après que la méthode ait été appelée,
la personne porte encore la télécommande avec la main droite. Comme résultat,
la télécommande est à l'opposé de la photo, ce qui indique qu'elle
est dans la même main.
You pouvez obtenir le même résultat en appelant la méthode deux fois
avec le
membre Rotate90FlipNone
chaque fois:private void btnRotate_Click(object sender, EventArgs e)
{
Bitmap bmpPicture = new Bitmap("person1.gif");
bmpPicture.RotateFlip(RotateFlipType.Rotate90FlipNone);
bmpPicture.RotateFlip(RotateFlipType.Rotate90FlipNone);
CreateGraphics().DrawImage(bmpPicture, 10, 10);
}
|
- Rotate270FlipNone: La photo est tournée à 90° dans le sense des aiguilles d'une montre
trois fois. Ceci signifie que la photo est d'abord tournée à 90°, puis
tournée encore à 90°, et puis encore tournée à 90°. Voici un exemple:
| Photo Originale |
|
Après avoir appelé la méthode |
 |
=> |
 |
Remarquez que, après que la méthode ait été appelée,
la personne porte encore la télécommande avec la main droite.
Vous pouvez obtenir le même résultat en appelant la méthode trois fois
with le member
Rotate90FlipNone chaque fois:private void btnRotate_Click(object sender, EventArgs e)
{
Bitmap bmpPicture = new Bitmap("person1.gif");
bmpPicture.RotateFlip(RotateFlipType.Rotate90FlipNone);
bmpPicture.RotateFlip(RotateFlipType.Rotate90FlipNone);
bmpPicture.RotateFlip(RotateFlipType.Rotate90FlipNone);
CreateGraphics().DrawImage(bmpPicture, 10, 10);
}
|
- Rotate180FlipXY: Pas de vrai changement. En réalité, La photo est tournée à
90° quatre fois et puis retourne à son orientation et position originales:
| Photo Originale |
 |
| Après avoir appelé la méthode |
 |
- Rotate90FlipX: La photo est en mirroire, puis tournée à 90° contre le sense des aiguilles d'une montre
(ou tournée à 90° contre le sense des aiguilles d'une montre puis en
mirroire):
| Photo Originale |
|
Après avoir appelé la méthode |
 |
=> |
 |
| Remarquez que, après que la méthode ait été appelée,
la personne porte maintenant la télécommande avec sa main gauche |
- Rotate180FlipX: La photo est en mirroire, puis tournée à 180° contre le sense des aiguilles d'une montre
deux fois (ou tournée à 180° contre le sense des aiguilles d'une montre deux fois
puis en mirroire):
| Photo Originale |
 |
| Après avoir appelé la méthode |
 |
| Remarquez que, après que la méthode ait été appelée,
la personne porte maintenant la télécommande avec la main gauche.
Par conséquent, la télécommande est du même côté de l'écran sur
les deux photos (comparez avec Rotate180FlipNone) |
- Rotate270FlipX: La photo est en mirroire, puis tournée à 90° contre le sense des aiguilles d'une montre
trois fois (ou tournée à 90° contre le sense des aiguilles d'une montre trois fois
puis en mirroire):
| Photo Originale |
|
Après avoir appelé la méthode |
 |
=> |
 |
| Remarquez que, après que la méthode ait été appelée,
la personne porte maintenant la télécommande à la main gauche |
- Rotate90FlipY: Produit le même résultat que Rotate270FlipX
- Rotate270FlipY: Produit le même résultat que Rotate90FlipX
- Rotate90FlipXY: Produit le même résultat que Rotate270FlipNone
- Rotate270FlipXY: Produit le même résultat que Rotate90FlipNone
- RotateNoneFlipXY: Produit le même résultat que Rotate180FlipNone
|
|