.NET:用WPF对象替换ImageMagick

时间:2008-12-10 10:22:57

标签: .net wpf image imagemagick rich-media

我们都看过很酷的WPF演示应用程序和富媒体。

如果WPF对象可以替换ImageMagick 中的某些基本功能,那么我的问题是。基本功能,如调整图像大小,裁剪等。

.NET 2.0的System.Graphics-namespace调整大小的结果很难过(GDI +)。也许我错了,但开箱即用。

另外,一个很好的选择是WPF的API比ImageMagick的.NET API更尖锐。

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

5 个答案:

答案 0 :(得分:4)

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

WPF比GDI +要好得多,但它仍然是一个GUI系统 - 比如在不同的硬件上产生完全相同的结果(比如IgorK担心的)并不是优先事项,调整质量的重要性不如性能 - 重要的是它将无法用作渲染管道的一部分。

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我不知道WPF,但你可以使用GDI + - 这里有一个介绍:

答案 3 :(得分:1)

发现this blog与您的情况类似。

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

你可以做很多有趣的事情,比如在WPF中应用HLSL着色器,但它至少在现在看起来像是非常特殊(并且可能有问题)的方式进行图像处理。也许有一天,在许多其他领域使用WPF将变得明智无比,但是现在我会坚持使用更可预测的内容:)当然,知道WPF是积极开发并且项目有人做了GDI +是很好的(见{{3但是,对于严肃的项目,以“新方式”使用它是一种非常新鲜的技术。无论如何,我很高兴知道你是否成功让WPF方法为你工作,对我来说看起来非常有趣的想法:)

答案 4 :(得分:1)

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

- 抱歉英语不好:(

豫ICP备18024241号-1