我尝试使用代码在按钮点击事件上旋转图像,
if (btn.Text.Equals("Rotate"))
{
if (angle >= 360)
angle = 0;
angle += 90;
RotateTransform rt = new RotateTransform();
rt.Angle = angle;
img.RenderTransform = rt;
}
使用上面的代码图像旋转90度,除了按钮点击上的前一次旋转。
我想使用WritableBitmap
保存旋转的图像。
我怎么能保存它?
答案 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();