如何在 C# 中使用 imageMagick
Posted
技术标签:
【中文标题】如何在 C# 中使用 imageMagick【英文标题】:how to use imageMagick with C# 【发布时间】:2011-06-22 12:54:24 【问题描述】:您能否解释一下我如何将 ImageMagick 与 C# 一起使用。我正在尝试将 PDF 转换为页面为图像。
我想运行 imageMagick 命令“convert -density 300 $input.pdf $output.png”
【问题讨论】:
【参考方案1】:Magic.Net 是流行库 ImageMagick 的 C# 端口。使用来自 url https://www.nuget.org/packages/Magick.NET-Q16-AnyCPU/ 的 Nuget 包安装 Magick.Net。请注意,Magick.Net 有许多版本,因此请根据您的需要进行选择。这样你就可以使用 C#。见下面的代码
请注意,它将垂直附加图像。同样,您可以水平追加。
using ImageMagick;
string inputPdf= @"C:\my docs\input.pdf";
string outputPng= @"C:\my docs\output.png";
using (MagickImageCollection images = new MagickImageCollection())
images.Read(inputPdf);
using (IMagickImage vertical = images.AppendVertically())
vertical.Format = MagickFormat.Png;
vertical.Density = new Density(300);
vertical.Write(outputPng);
【讨论】:
【参考方案2】:最好使用Magick.NET,无需在客户端安装ImageMagick: http://magick.codeplex.com/
【讨论】:
这种方法的问题在于,Magick.NET 需要 GhostScript 将 PDF 转换为图像,而这不是免费的。而且很奇怪,因为在命令行中简单地使用 ImageMagick 不需要 Ghostscript 将 pdf 转换为图像。【参考方案3】:string arguments = string.Format(@"-density 300 0.pdf 1.png", intputFileName, outputFileName");
var startInfo = new ProcessStartInfo
Arguments = arguments,
Filename = @"C:\path\to\imagick\convert.exe"
;
Process.Start(startInfo).WaitForExit();
参考资料:
ProcessStartInfo Process【讨论】:
谢谢。有没有办法隐藏命令提示符(停止弹出命令提示符)?再次感谢。很有帮助! 如果你需要隐藏控制台你正在寻找 hstart 工具ntwind.com/software/utilities/hstart.html。 试试startInfo.CreateNoWindow = true
startInfo.UseShellExecute = false;这个有效,谢谢!谢谢你 1000 次 :)以上是关于如何在 C# 中使用 imageMagick的主要内容,如果未能解决你的问题,请参考以下文章