2016-08-29 3 views
2

Wie kann ich Bitmap um 90 Grad im Uhrzeigersinn drehen? Ich verwende den nächsten Code, um ein Bild aus dem Speicher zu lesen:Bitmap durch Code drehen C# UWP

public async void GetImage() 
    { 
     string filename = code + ".jpg"; 

     Windows.Storage.StorageFile sampleFile = 
      await Windows.Storage.KnownFolders.CameraRoll.GetFileAsync(filename); 


     BitmapImage img = new BitmapImage(); 

     img = await LoadImage(sampleFile); 

     imageMain.Source = img; 

    } 

     private static async Task<BitmapImage> LoadImage(StorageFile file) 
    { 
     BitmapImage bitmapImage = new BitmapImage(); 
     FileRandomAccessStream stream = (FileRandomAccessStream)await file.OpenAsync(FileAccessMode.Read); 

     bitmapImage.SetSource(stream); 

     return bitmapImage; 
    } 

Und ich möchte Bild gedreht werden. BitmapImage.Rotate funktioniert nicht im UWP. Welche Lösung ist?

+0

[RotateTransform-Klasse] (https://msdn.microsoft.com/library/windows/apps/br242932). – IInspectable

Antwort

4

Dies kann durch RotateTransform Klasse

In -Code Hinter

RotateTransform _rotateTransform = new RotateTransform() 
{ 
    CenterX = imageMain.ActualWidth/2, 
    CenterY = imageMain.ActualHeight/2, 
    Angle = 90 
}; 
imageMain.RenderTransform = _rotateTransform; 

In XAML

<Image Stretch="Fill" Source="Assets/Windows.jpg" x:Name="imageMain" Width="500" Height="500"> 
    <Image.RenderTransform> 
     <RotateTransform CenterX="250" CenterY="250" Angle="90"/> 
    </Image.RenderTransform> 
</Image> 

** erreicht werden, wenn Sie feststellen, dass CenterX und CenterY sehen sind halb so groß wie Actu al Bild.

Viel Glück.