在C#代码隐藏中将旋转的图像复制到现有图像

时间:2015-05-27 04:11:10

标签: c# wpf rotation

我正在尝试将旋转的图像复制到代码隐藏中的现有图像。

以下是我的2张图片:

<Image x:Name="tempImage1" Source="Images/firstImage.jpg" Stretch="None" VerticalAlignment="Center" HorizontalAlignment="Center" />
<Image x:Name="myImage2" Source="Images/secondImage.jpg" Stretch="None" VerticalAlignment="Center" HorizontalAlignment="Center" />

代码隐藏中的轮换:

RotateTransform rt = new RotateTransform(-theta, 200, 300);
tempImage1.RenderTransform = rt;
myImage2.Source = tempImage1.Source;

我知道我做得不对(对此仍然很新)。有人可以帮我指点正确的方向吗?我正在寻找的结果是让myImage2以旋转形式显示tempImage1,而不是原始来源。

2 个答案:

答案 0 :(得分:2)

使用RenderTargetBitmap为我解决了这个问题。

在XAML中使用图片tempImage1myImage2

RenderTargetBitmap rtb = new RenderTargetBitmap(_width, _height, 96, 96, PixelFormats.Default);
rtb.Render(tempImage1);
myImage2.Source = rtb;

以上是在tempImage1已被轮换和转换的假设下完成的。

答案 1 :(得分:0)

好吧,如果你这样做,你必须知道第一张图像是可见的,因为它在背景中很好我根据你的问题以30度的角度旋转,XAML保持不变,新的C#代码是

RotateTransform rt = new RotateTransform();
rt.Angle = 30;
tempImage1.RenderTransform = rt;
myImage2.Source = tempImage1.Source;