透明像素

时间:2014-12-28 21:23:57

标签: c# wpf image bitmapimage

我有WPF项目。其上有StackPanel和两个Image元素。我想裁剪(使用智能剪刀算法)第一张图像并将其覆盖在第二张图像上。我怎样才能做到这一点?我试图改变每个像素的alpha通道,但它没有用。看起来不可能。

2 个答案:

答案 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>