使用Magick.NET和C#技术

4

我将使用Magick.NET和C#实现一个功能。

之前我使用的是:

// Convert to a png.
Process p = new Process();

p.StartInfo.FileName = @"C:\Program Files\ImageMagick-6.2.8-Q16\convert.exe";
p.StartInfo.Arguments = "-scale 60% \"" + svg + "\" \"" + png + "\"";
p.StartInfo.CreateNoWindow = true;

p.Start();

p.WaitForExit();

TransmitFile(context, png);

我希望不再需要在服务器上存储convert.exe......现在我想使用一些可以在代码中运行且不需要引用服务器上可执行文件的工具:

// Pseudo-code:-
MagickImage img = new MagicImage();
Image.Add(svg);
Image.Format = MagickFormat.png;
Image.Scale = 60%;

但是我找不到足够的文档来实现之前使用的相同功能。是否有适当的文档可以提供?我已经进行了相当多的谷歌搜索,但没有成功。

1个回答

7

这里有一些Magick.NET的使用示例,可以在这里找到。

如何将一个图像转换为另一个图像的示例可以在这里找到。但是没有-scale 60%的示例。

命令行中的大多数选项在MagickImage类中都有相同的名称。您的命令convert input.svg -scale 60% output.png翻译成:

using (MagickImage image = new MagickImage("input.svg"))
{
  image.Scale(new Percentage(60));
  image.Write("output.png");
}

谢谢!不过我遇到了一些错误:使用 - 'ImageMagickObject.MagickImage':在using语句中使用的类型必须可以隐式转换为'System.IDisposable'............'ImageMagickObject.MagickImage'不包含“Write”的定义,也没有接受类型为'ImageMagickObject.MagickImage'的第一个参数的扩展方法'Write'(您是否缺少using指令或程序集引用?............类型或命名空间名称“Percentage”未找到(是否缺少using指令或程序集引用?......... - Philo
我在Visual Studio中安装了Magic.NET x64.dll、Core.dll和wrapper-x64.dll。 - Philo
1
看起来你正在使用另一个库,它有一个名为MagickImage的类。MagickImage类的命名空间是ImageMagick而不是ImageMagickOjbect。 - dlemstra
你是对的,我在命名空间中引用了ImageMagick和ImageMagickObject。但是在删除后者之后,现在MagickImage出现了问题 - 找不到类型或命名空间'MagickImage'(缺少引用??) - Philo
我在对象浏览器中查看了一下,发现我的imageMagick命名空间中没有“magickImage”。 - Philo
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接