【问题标题】:Mono Ignores Graphics.InterpolationMode?Mono 忽略 Graphics.InterpolationMode?
【发布时间】:2010-04-21 17:20:20
【问题描述】:

我有一个使用 System.Drawing 和 Graphics 类绘制矢量图形的程序。抗锯齿效果不错,但出于我的需要,我需要过采样,所以我将起始图像创建为 n 倍,然后将最终图像缩小 n 倍。在 Window 和 .NET 上,生成的图像看起来很棒!然而,在 Mono 2.4.2.3(Ubuntu 9.10 安装)上,插入是可怕的。以下是我缩放图像的方式:

Bitmap bmp = new Bitmap(Bmp.Width / OverSampling, Bmp.Height / OverSampling);
Graphics g = Graphics.FromImage(bmp);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(Bmp, 0, 0, bmp.Width, bmp.Height);
g.Dispose();

据我所知,根本没有发生插值。有什么想法吗?

【问题讨论】:

    标签: c# mono gdi+


    【解决方案1】:

    我找到了这个:http://www.mail-archive.com/mono-devel-list@lists.ximian.com/msg18099.html

    我猜 Mono 的绘图程序的底层代码有问题。耶!现在我可以编写自己的降频器了。

    【讨论】:

    • 嗨蒂莫西。只是想知道你是否曾经想出一个好的解决方案。在这里面对同样的事情:(
    • 不幸的是,没有......这是一个深入 Linux 代码的问题。基本上 Mono 的 System.Drawing 是基于 Cairo 的,而 Cairo 又是基于 Pixman 的。问题在于 Pixman。我看了一下 Pixman 代码,这需要做一些事情。代码非常灵活,因此非常复杂。 Baiscally 您正在寻找的是 pixman 中的双线性过滤。据我所知,它不存在。如果它被添加,您将不得不手动重新编译 pixman 以获取这些功能。要么,要么等待新的发行版。
    • 老实说,我最终选择了 PySide 和 Python。到目前为止,一切都很棒。
    • 真可惜。我正在开发的网站是在.net 下开发的。花了大约一个小时在单声道下运行 - 除了这个小怪癖之外,一切都运行良好。那好吧。还是谢谢。
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多