gpt4 book ai didi

wpf - 在 WPF v4 中但不在 v3.5 下的图像调整别名

转载 作者:行者123 更新时间:2023-12-04 20:24:13 25 4
gpt4 key购买 nike

我将 WPF 用于图像调整大小管道,该管道在 .NET v3.5 下运行良好。我刚刚将项目升级到目标 v4.0,现在我所有调整大小的图像都有严重的锯齿。图像管道代码均未更改。

  • 是否在 v3.5 和 v4.0 之间更改了默认 WPF 设置?
  • 如何控制 WPF 中调整大小的位图图像的抖动?

  • 我正在使用 BitmapImage , DrawingVisual , DrawingContext , RenderTargetBitmap , BitmapEncoder , 和 BitmapFrame但我没有看到任何与抖动相关的属性。 GDI+ 有很多设置,所以我猜我遗漏了一些东西。

    更新:看来我见过的所有解决方案都假设一个 Window 对象或 XAML 环境。这在没有 UI 的 Windows 服务中运行。我需要一种以编程方式影响此设置的方法。

    我专门从 GDI+ 切换到 WPF,因为 GDI+ 在长时间运行的进程(如服务和 Web 应用程序)中存在内存泄漏。

    最佳答案

    我能够影响 BitmapScalingMode 设置的唯一方法是继承自DrawingVisual类并通过其 protected 访问器设置它:

    // exposes BitmapScalingMode (also works for other protected properties)
    public class MyDrawingVisual : DrawingVisual
    {
    public BitmapScalingMode BitmapScalingMode
    {
    get { return this.VisualBitmapScalingMode; }
    set { this.VisualBitmapScalingMode = value; }
    }
    }

    如果其他人知道设置此设置的更好方法,我会很高兴听到它。

    似乎这会奏效:
    RenderOptions.SetBitmapScalingMode(myDrawingVisual, BitmapScalingMode.HighQuality);

    ...但事实并非如此。显然,在 XAML 窗口运行时之外必须意味着它无法设置适当的值。

    关于wpf - 在 WPF v4 中但不在 v3.5 下的图像调整别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2967936/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com