我希望找到在wpf中执行此操作的最佳方法。我已经问过这个问题并得到了一个在opencv中实现它的答案。 round robin image rotation what is the best way to do in opencv
在wpf中执行此操作的最佳方式是什么。
显然我可以创建一个writableBitmap并手动复制像素,但我不认为这是最好的方法。
澄清我的要求:我喜欢使用WPF实现在此SO问题(round robin image rotation what is the best way to do in opencv)中建议的相同算法。
在WPF中执行此操作的最佳方法是什么,这是有效的(内存和速度)。
答案 0 :(得分:0)
您可以使用 ImageBrush 在矩形上绘图并调整画笔的 ViewPort 属性以滑动图像。如果你想用这个做动画,下面是WPF中的一个示例XAML,它使用动画自动调整画笔的视口属性并执行幻灯片动画。希望这有用。
<Window x:Class="TestWpfApplication.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Rectangle>
<Rectangle.Fill>
<DrawingBrush x:Name="MyBrush" Viewport="0,0,1,1" TileMode="Tile">
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing>
<GeometryDrawing.Geometry>
<GeometryGroup>
<RectangleGeometry Rect="0,0,100,100" />
</GeometryGroup>
</GeometryDrawing.Geometry>
<GeometryDrawing.Brush>
<ImageBrush ImageSource="lSXfX.png" />
</GeometryDrawing.Brush>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Rectangle.Fill>
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<BeginStoryboard>
<Storyboard>
<RectAnimation
Storyboard.TargetName="MyBrush"
Storyboard.TargetProperty="Viewport"
From="0 0 1 1" To="1 0 1 1" Duration="0:0:10"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
</Grid>
</Window>