我有WPF项目。其上有StackPanel
和两个Image
元素。我想裁剪(使用智能剪刀算法)第一张图像并将其覆盖在第二张图像上。我怎样才能做到这一点?我试图改变每个像素的alpha通道,但它没有用。看起来不可能。
答案 0 :(得分:0)
这个怎么样:
<StackPanel>
<Grid>
<Image ... your first pic />
<Image Opacity="0.5" ... your second pic />
</Grid>
</StackPanel>
Grid
可帮助您将元素叠加在一起。 Opacity
让你控制第二张照片的不透明度,这样你就可以将它与第一张照片混合。
答案 1 :(得分:0)
也许是这样的,除了路径; s数据需要在完成所有点连接时设置抛出代码。
<Grid>
<Grid.Resources>
<Geometry x:Key="pathToCropImageBy">M 32.5,0.499977L 192.5,0.499977L 192.5,160.5L 160.5,128.5L 160.5,32.5L 64.5,32.5L 32.5,0.499977 Z M 0.5,64.5001L 128.5,64.5L 128.5,192.5L 96.5,160.5L 96.5,96.5001L 32.5,96.5001L 0.5,64.5001 Z </Geometry>
</Grid.Resources>
<Image Source="man1-48.png">
<Image.OpacityMask>
<DrawingBrush Stretch="Uniform">
<DrawingBrush.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Brush="White" Geometry="{StaticResource pathToCropImageBy}">
</GeometryDrawing>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Image.OpacityMask>
</Image>
</Grid>