在c#代码后面复制旋转图像到现有图像

本文关键字:图像 旋转 复制 代码 | 更新日期: 2023-09-27 17:50:52

我试图将旋转图像复制到代码背后的现有图像。

这是我的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在其旋转形式,而不是原来的来源。

在c#代码后面复制旋转图像到现有图像

使用RenderTargetBitmap解决了我的问题。

与图像tempImage1myImage2在您的XAML:

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

以上是在假定tempImage1已经被旋转和变换的情况下完成的。

如果你这样做了你必须知道第一张图片将会在背景中可见我只是按照你的问题旋转了30度XAML保持不变新的c#代码是

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