如何在Windows Phone 8.1中保存旋转图像WritebaleBitmap?

时间:2015-10-27 12:20:47

标签: windows-phone-7 windows-phone-8 windows-phone-8.1 windows-phone

我尝试使用代码在按钮点击事件上旋转图像,

if (btn.Text.Equals("Rotate"))
{
    if (angle >= 360)
        angle = 0;

    angle += 90;
    RotateTransform rt = new RotateTransform();
    rt.Angle = angle;
    img.RenderTransform = rt;       
}

使用上面的代码图像旋转90度,除了按钮点击上的前一次旋转。

我想使用WritableBitmap保存旋转的图像。 我怎么能保存它?

1 个答案:

答案 0 :(得分:1)

我尝试了以下步骤,它可以使用WritableBitmap保存旋转的图像,

步骤1)将Image控件放置在StackPanel控件内,如下所述,

    <StackPanel x:Name="ContentPanel" Grid.Row="1" Background="Black" Height="400" Width="400"  Margin="0, 50, 0, 50" >
    <Image x:Name="img" RenderTransformOrigin="0.5, 0.5" CacheMode="BitmapCache" Grid.Row="1" Stretch="UniformToFill" Height="400" Width="400" >
         <Image.RenderTransform>
             <CompositeTransform x:Name="transform" />
         </Image.RenderTransform> 
    </Image>
</StackPanel>

步骤2)使用以下代码使用StackPanel“ContentPanel”保存WitableBitmap,因为我在ContentPanel上添加了Image控件,

IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();

if (isolatedStorage.FileExists(filePath))
   isolatedStorage.DeleteFile(filePath);

var fileStream = isolatedStorage.CreateFile(filePath);

WriteableBitmap wb = new WriteableBitmap(ContentPanel, null);

wb.SaveJpeg(fileStream, wb.PixelWidth, wb.PixelHeight, 0, 100);

fileStream.Close();