zoukankan      html  css  js  c++  java
  • Image

    灰度图像

    <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
      <Page.Resources>
    
        <!-- This resource defines a BitmapImage with a source and a
             DecodePixelWidth of 200. This property is set to the same value 
             as the desired width of the image to save on memory use. This 
             BitmapImage is used as the base for the other BitmapSource resources. -->
        <BitmapImage x:Key="masterImage" DecodePixelWidth="200" 
         UriSource="C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Forest.jpg"/>
    
        <!-- This FormatConvertedBitmap uses the BitmapImage defined above and
             changes the format to Gray32Float (grayscale). -->
            <FormatConvertedBitmap x:Key="convertFormatImage" 
                                   Source="{StaticResource masterImage}" 
                                   DestinationFormat="Gray32Float" />
          
      </Page.Resources>
      
      <StackPanel>
        
        <!-- Apply the "convertFormatImage" resource defined above to this image.  -->
        <Image Width="200" Source="{StaticResource convertFormatImage}" />
      </StackPanel>
    </Page>

    裁剪图像

    <Page.Resources>
       <!-- Define some image resources, for use as the image element source. -->
       <BitmapImage x:Key="masterImage" UriSource="/sampleImages/gecko.jpg" />
       <CroppedBitmap x:Key="croppedImage" 
          Source="{StaticResource masterImage}" SourceRect="30 20 105 50"/>
    </Page.Resources>
    
    <!-- Use the cropped image resource as the images source -->
    <Image Width="200" Source="{StaticResource croppedImage}" 
       Margin="5" Grid.Column="0" Grid.Row="1" />

    CroppedBitmap还可以用作另一个源CroppedBitmap,链接裁剪。 请注意,SourceRect使用相对于裁剪位图并不是初始的图像的源的值。

    <!-- Chain a cropped bitmap off a previosly defined cropped image -->
    <Image Width="200" Grid.Column="0" Grid.Row="3" Margin="5">
       <Image.Source>
          <CroppedBitmap Source="{StaticResource croppedImage}" 
             SourceRect="30 0 75 50"/>
       </Image.Source>
    </Image>

    旋转图像

    <Image Width="150" Margin="5" Grid.Column="0" Grid.Row="1">
       <Image.Source>
         <BitmapImage UriSource="/sampleImages/watermelon.jpg" Rotation="Rotate90" />
       </Image.Source>
    </Image>

    变换

    <!-- This resource defines a BitmapImage with a source and a
             DecodePixelWidth of 200. This property is set to the same value 
             as the desired width of the image to save on memory use. This 
             BitmapImage is used as the base for the other BitmapSource resources. -->
        <BitmapImage x:Key="masterImage" DecodePixelWidth="200" 
         UriSource="C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Forest.jpg"/>
    
        <!-- This TransformedBitmap uses the BitmapImage defined above and flips
             it 90 degrees. -->
        <TransformedBitmap x:Key="rotatedImage" Source="{StaticResource masterImage}">
          <TransformedBitmap.Transform>
            <RotateTransform Angle="90" />
          </TransformedBitmap.Transform>
        </TransformedBitmap>

    掩码

    圆角图片

    <Grid>
            <Border  Name="myBorder" CornerRadius="40" Background="White"/>
            <Image Source="D:\Pictures\Animals\041.jpg">
                <Image.OpacityMask>
                    <VisualBrush Visual="{Binding ElementName=myBorder}"/>
                </Image.OpacityMask>
            </Image>
        </Grid>

    注意Border的Background需要设置,因为OpacityMask属性仅使用 alpha 通道值为提供的 Brush 

     或者使用clip

    <Image Source="D:\Pictures\Animals\041.jpg" Width="200" Height="150">
                <Image.Clip>
                    <EllipseGeometry RadiusX="100" RadiusY="75" Center="100,75"/>
                </Image.Clip>
            </Image>

    BitmapFrame用于存储图像格式的实际位图数据。 演示如何BitmapFrame从 创建BitmapSource,然后添加到 TIFF 映像。

    BitmapSource image5 = BitmapSource.Create(
        width,
        height,
        96,
        96,
        PixelFormats.Indexed1,
        BitmapPalettes.WebPalette,
        pixels,
        stride);
    
    FileStream stream5 = new FileStream("palette.tif", FileMode.Create);
    TiffBitmapEncoder encoder5 = new TiffBitmapEncoder();
    encoder5.Frames.Add(BitmapFrame.Create(image5));
    encoder5.Save(stream5);

     

     BitmapImage是专为加载BitmapSource可扩展应用程序标记语言 (XAML)优化Source的专用函数,是作为Image控件显示图像的简便方法。

    // Create Image Element
    Image myImage = new Image();
    myImage.Width = 200;
    
    // Create source
    BitmapImage myBitmapImage = new BitmapImage();
    
    // BitmapImage.UriSource must be in a BeginInit/EndInit block
    myBitmapImage.BeginInit();
    myBitmapImage.UriSource = new Uri(@"C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Water Lilies.jpg");
    
    // To save significant application memory, set the DecodePixelWidth or
    // DecodePixelHeight of the BitmapImage value of the image source to the desired
    // height or width of the rendered image. If you don't do this, the application will
    // cache the image as though it were rendered as its normal size rather then just
    // the size that is displayed.
    // Note: In order to preserve aspect ratio, set DecodePixelWidth
    // or DecodePixelHeight but not both.
    myBitmapImage.DecodePixelWidth = 200;
    myBitmapImage.EndInit();
    //set image source
    myImage.Source = myBitmapImage;
  • 相关阅读:
    C# 获取文件名、无后缀文件名、扩展名
    navicat for oracle 导入xlsx文件提示无法打开xlsx文件
    复制的文件不能粘贴到远程的服务器上
    使用.bat 批量将部分文件迁移到新的路径下
    sql sever 查询用户所有的表和各个表数据量
    orecle 查询数量 union合并 的排序问题
    oracle 如何将带有,的一列分成多列
    java中selenium判断某个元素是否存在
    docker安装Ubuntu以及ssh连接
    Java8 将List<JavaBean>中某个属性取出来为单独的一个集合List<String>
  • 原文地址:https://www.cnblogs.com/yetsen/p/13567475.html
Copyright © 2011-2022 走看看