2011-09-05 3 views
2

Je veux faire pivoter une image bitmap je l'ai écrit un code et il fonctionneFaire pivoter une BitmapImage

TransformedBitmap TempImage = new TransformedBitmap(); 

TempImage.BeginInit(); 
TempImage.Source = MyImageSource; // MyImageSource of type BitmapImage 

RotateTransform transform = new RotateTransform(90); 
TempImage.Transform = transform; 
TempImage.EndInit(); 

image1.Source = TempImage; 

mais je veux que MyImageSource obtenir cette modification, car comme ça si je clique à nouveau dans le rien bouton arriver et ce normal il obtient la première forme de mon image, et je veux aussi qu'il prenne cette forme car je dois l'enregistrer après modification.

pourquoi je dois le faire:

J'ai une image tiff à lire certains d'entre eux peut être pas dans la bonne forme que je veux ajouter bascule de 90 ° l'utilisateur clique sur jusqu'à ce que le retour d'image au bon formulaire et quand il clique sur retourner l'image sera sauvegardée (remplacée) sur le disque dans la forme réelle choisie par l'utilisateur

Répondre

2

Que pensez-vous de cela?

var transformBitmap = (TransformedBitmap)image1.Source; 
RotateTransform rotateTransform = (RotateTransform)(transformBitmap.Transform); 
rotateTransform.Angle += 90; 
image1.Source = transformBitmap.Clone(); 
+0

Je suis exception: Impossible de jeter l'objet de type 'System.Windows.Media.Imaging.BitmapImage' taper « System.Windows.Media.Imaging.TransformedBitmap '. dans la première ligne de votre code – Akrem

+1

Dans le code que vous avez joint, TempImage est le type de TransformedBitmap. Donc, je le convertis en TransformedBitmap. Si vous rencontrez des problèmes lors de la conversion en TransformedBitmap, assurez-vous que le code est le même que celui que vous avez joint. – Howard

1

Que diriez-vous ceci:

BitmapImage Image = new BitmapImage(); 
Image.BeginInit(); 
Image.CacheOption = BitmapCacheOption.OnLoad; 
Image.UriSource = new Uri(ImagePath); 

// here 
Image.Rotation = Rotation.Rotate270; // or 90, 0, 180 

Image.EndInit();