【问题标题】:Smoothing image edges in WPF在 WPF 中平滑图像边缘
【发布时间】:2013-01-07 13:45:35
【问题描述】:

我有一些 256x256 的图像,我在 WPF 应用程序中与图像控件一起使用。虽然它们都是 256x256,但我将一些控件更改为 64x64 等。当我缩小它的大小(使用填充作为我的拉伸属性)时,边缘变得非常粗糙。即使在像三角形这样简单的东西上,也很明显:

这个问题有什么好的解决办法吗,还是我需要先在 Photoshop 中调整图像大小,然后再将它们放入应用程序?

【问题讨论】:

    标签: c# wpf image antialiasing


    【解决方案1】:

    您需要设置图像的渲染选项。

    尝试将图像的样式设置为:

    <Window.Resources>
        <Style TargetType="Image">
            <Setter Property="Height" Value="64" />
            <Setter Property="Width" Value="64" />
            <Setter Property="RenderOptions.BitmapScalingMode" Value="HighQuality" />
        </Style>
    </Window.Resources>
    

    要使用图像,只需像以前一样调用:

    <Image Source="/Images/MyImage.png" />
    

    或者,在单个图像上使用RenderOptions

    <Image RenderOptions.BitmapScalingMode="HighQuality"
           Source="/Images/MyImage.png"
           Width="64"
           Height="64" />
    

    更多信息见:

    http://msdn.microsoft.com/en-us/library/system.windows.media.renderoptions.aspx

    【讨论】:

      【解决方案2】:

      这是代码中的先前答案:

      var i = new Image();
      System.Windows.Media.RenderOptions.SetBitmapScalingMode(i, System.Windows.Media.BitmapScalingMode.HighQuality);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-21
        • 1970-01-01
        • 2019-04-30
        • 2014-01-06
        • 1970-01-01
        • 2014-03-14
        相关资源
        最近更新 更多