Rotation et miroir de bitmap

Soyez le premier à donner votre avis sur cette source.

Snippet vu 16 904 fois - Téléchargée 23 fois

Contenu du snippet

Il doit exister une solution certainement plus rapide, mais pour palier
à l'absence de la fonction RotateFlip dans la CF 1.O, voici deux fonctions simple
de rotation et de miroir sur une image

Source / Exemple :


Public Function RotateLeft(ByVal Img As Bitmap) As Bitmap
Dim NouveauBitmap As New Bitmap(Img.Size.Height, Img.Size.Width)
Dim X, Y As Integer
For Y = 0 To Img.Size.Height - 1
For X = 0 To Img.Size.Width - 1
NouveauBitmap.SetPixel(Y, NouveauBitmap.Height - X, Img.GetPixel(X, Y))
Next
Next
Return NouveauBitmap
End Function

Public Function Mirror(ByVal Img As Bitmap) As Bitmap
Dim NouveauBitmap As New Bitmap(Img.Size.Width, Img.Size.Height)
Dim X, Y As Integer
For Y = 0 To Img.Size.Height - 1
For X = 1 To Img.Size.Width - 1
NouveauBitmap.SetPixel(NouveauBitmap.Width - X, Y, Img.GetPixel(X, Y))
Next
Next
Return NouveauBitmap
End Function

Conclusion :


'Pour appeler ces fonctions, en supposant que l'image soit déjà chargée dans un pictureBox appelé PB1
PB1.Image = Mirror(PB1.Image)
PB1.Size = PB1.Image.Size

Si vous avez plus rapide n'hésitez pas à partager vos infos......

A voir également

Ajouter un commentaire

Commentaires

Baguauda
Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
1 -
Simple et efficace, que demander de mieux. J'ai pas tester les temps d'execution, mais ca doit pas etre si enorme que ca non?
ozeon
Messages postés
1
Date d'inscription
jeudi 20 avril 2006
Statut
Membre
Dernière intervention
16 octobre 2006
-
le temps est énorme oui. J'utilise un procédé semblable à celui écrit ci dessus pour tourner une vidéo de 90° lors de chaque rafraichissement d'image. Le temps est de 5 secondes par rafraichissement, et cela fait ramer tout le reste de l'application! Donc si quelqu'un à trouver une méthode miracle je suis preneur...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.