天天看点

C#四种图片处理

C#四种图片处理

讲解都在对应的代码注释里 ,可直接复制过去运行

C#四种图片处理
<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="1*"/><RowDefinition Height="1*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*"/><ColumnDefinition Width="1*"/>
        </Grid.ColumnDefinitions>
        <Grid Grid.Row="0" Grid.Column="0">
            <!--TranslateTransform平移变化
      包含X,Y两种属性,以原来的对象为坐标原点(0,0),然后向x轴,y轴进行平移变换-->
            <!--开始,定义两张图片-->
            <Image Canvas.Top="80" Canvas.Left="70" Source="images\303329.jpg"></Image>
            <Image Canvas.Top="80" Canvas.Left="70" Source="images\303329.jpg">
                <!--平移变化-->
                <Image.RenderTransform>
                    <TranslateTransform X="60" Y="60"></TranslateTransform>
                </Image.RenderTransform>
            </Image>
        </Grid>
        <Grid Grid.Row="0" Grid.Column="1">
            <Canvas>
                <Image Width="600"  Canvas.Top="80" Canvas.Left="70" Source="images\303538.jpg" Opacity="0.5"></Image>
                <Image Width="600"  Canvas.Top="80" Canvas.Left="70" Source="images\303538.jpg">
                <Image.RenderTransform>
                        <ScaleTransform  ScaleX =" 0.5" ScaleY="0.5"></ScaleTransform>
                </Image.RenderTransform>
                </Image>
                <TextBlock Text="包括属性ScaleX、ScaleY、CenterX、CenterY,其中ScaleX、ScaleY属性表示对象在X、Y轴进行缩放的倍数,使用CenterX 和 CenterY属性指定一个中心点。"/>
            </Canvas>
            
        </Grid>
        <Grid Grid.Row="1" Grid.Column="0">
         <!--缩放、旋转、扭曲等变化效果合并起来。以上四种基本变化只是单一的变化,如果想要实现多种效果的叠加,那么就要使用到TransformGroup,否则会报错。TransformGroup的作用类似于在控件布局中的StackPanel内嵌的作用,是把多种变化元素组合成一种变化的-->
            <Canvas Width="600" Height="400">
                <Rectangle Canvas.Top="0" Canvas.Left="200" Width="400" Height="400" Stroke="Black" StrokeThickness="5">
                    <Rectangle.RenderTransform>
                        <TransformGroup>
                            <!--TransformGroup能够让某对象的位置发生平移变化。-->
                            <!--RotateTransform 变换,能够让某对象产生旋转变化,根据中心点进行顺时针旋转或逆时针旋转-->
                            <RotateTransform Angle="10"></RotateTransform>
                            <!--SkewTransform 变换-->
                            <SkewTransform AngleX="-10" AngleY="10" CenterX="20" CenterY="50"></SkewTransform> <!--SkewTransform: 能够让某对象产生扭曲变化-->
                        </TransformGroup>
                    </Rectangle.RenderTransform>
                    <Rectangle.Fill>
                        <ImageBrush ImageSource="images\303322.jpg"></ImageBrush>
                    </Rectangle.Fill>
                </Rectangle>
            </Canvas>
        </Grid>
        <Grid Grid.Row="1" Grid.Column="1">
            <Canvas>
                <Image Width="500" Canvas.Top="160" Canvas.Left="140" Source="images/303369.jpg" 
Opacity="0.5"></Image>
                <Image Width="500" Canvas.Top="160" Canvas.Left="140"  Source="images/303369.jpg">
                    <Image.RenderTransform>
                        <SkewTransform AngleX="30" AngleY="10">
                        </SkewTransform>
                    </Image.RenderTransform>
                </Image>
                <Image Width="500" Canvas.Top="160" Canvas.Left="140"  Source="images/303369.jpg">
                    <Image.RenderTransform>
                        <SkewTransform AngleX="-30" AngleY="-10">
                        </SkewTransform>
                    </Image.RenderTransform>
                </Image>
            </Canvas>
        </Grid>
    </Grid> 
    ```