2016-08-29 5 views
2

ビットマップを時計回りに90度回転させるにはどうすればよいですか?私は次のコードを使ってストレージから画像を読み込んでいます:ビットマップをコードで回転する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; 
    } 

そして私は画像を回転させたいと思います。 bitmapImage.RotateはUWPでは動作しません。どのような解決策ですか?

+0

[RotateTransformクラス](https://msdn.microsoft.com/library/windows/apps/br242932) – IInspectable

答えて

4

これは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> 

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

の後ろコードでRotateTransformクラス

によって達成することができます。**あなたが気付いた場合、あなたがそのCenterXCenterYを見ることができますActuの半分の大きさですal Image。

Good Luck。

関連する問題