2

我们都见过带有富媒体的超酷 WPF 演示应用程序。

我的问题是WPF 对象是否可以替换ImageMagick中的一些基本功能。调整图像大小、裁剪等基本功能。

.NET 2.0 的 System.Graphics 命名空间调整大小的结果令人遗憾(GDI+)。也许我用错了,但它似乎是开箱即用的。

此外,一个不错的选择是 WPF 的 API:s 比 ImageMagick 的 .NET API 更清晰。

更新:我的想法是 WPF 可能会有一个用于 Image-manipulation 的对象。就像 GDI 有 System.Drawing.Image 和 System.Drawing.Bitmap。但我希望 WPF 的对象在图像大小调整等方面性能更高、质量更好。

4

5 回答 5

4

WPF 和 GDI+ 是专门为 GUI 设计的图形系统,它们不是图像处理库。

WPF 比 GDI+ 好得多,但它仍然是一个 GUI 系统——在不同的硬件上产生完全相同的结果(就像 IgorK 担心的那样)并不是优先考虑的事情,调整大小的质量不如性能重要——否则它不会可用作渲染管道的一部分。

因此,如果您在显示图像之前使用 ImageMagick 进行基本处理,那么 WPF 可能对您有用(但我敢打赌,它的选项比 ImageMagick 少得多),如果您需要高质量的图像处理,那么 WPF 只是错误的工具工作。

WPF 是一个很棒的 GUI 系统(我用过的最好的),但它不是一个通用的图形系统,也不是一个图像处理库。

于 2008-12-10T16:04:41.923 回答
1

我不了解 WPF,但您可以使用 GDI+ - 这里有一个介绍:

于 2008-12-10T10:34:27.987 回答
1

发现这个博客与您的情况相似。

我有点担心 WPF 将使用硬件渲染(如果可用)。例如,如果您在不同的硬件上需要相同的结果(不仅仅是看起来相似),这可能会成为一个问题。

您可以做一些非常有趣的事情,例如在 WPF 中应用 HLSL 着色器,但至少现在在我看来,它仍然是一种非常特殊(并且可能存在问题)的图像处理方式。可能有一天在许多其他领域使用 WPF 会变得不费吹灰之力,但现在我会坚持使用更可预测的 :) 当然很高兴知道 WPF 正在积极开发并且项目中有从事 GDI+ 的人(请参阅)但是在严肃的项目中以“新方式”使用它是一种非常新鲜的技术。无论如何,我很高兴知道你是否成功地让 WPF 方法为你工作,对我来说这看起来很有趣:)

于 2008-12-10T13:13:48.337 回答
1

您可以只使用普通的旧 System.Drawing 命名空间。只需使用正确的对象、方法和参数,调整大小的图像不会很糟糕。

http://weblogs.asp.net/gunnarpeipman/archive/2009/04/02/resizing-images-without-loss-of-quality.aspx

于 2009-04-03T16:49:50.773 回答
1

WPF 和 GDI+ 在加载和处理图像时都有很多类型的错误。我向微软报告了一些错误,微软现在已经修复了这些错误……但仅限于 FW4.0 和 Windows7。对于其他操作系统(WinXP、Vista、Win2000)和 FW2.0,此错误将不会随时修复。

-- 抱歉英语不好:(

于 2009-10-20T13:14:34.370 回答