65.9K
CodeProject 正在变化。 阅读更多。
Home

在 ASP.NET 中执行 ImageMagick 命令行

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.32/5 (7投票s)

2008 年 1 月 14 日

CPOL

2分钟阅读

viewsIcon

89555

downloadIcon

1913

使用命令行在 ASP.NET 中执行 ImageMagick 操作

magick_example.jpg magick_example2.jpg

引言

几天前,当我准备进行一些图像处理工作时,偶然发现了它。我需要使用用户设置的数据重新绘制图像。然后我找到了 ImageMagick。现在在 ASP.NET 中,你很难找到关于 ImageMagick 的文章或帮助。感谢 bubble2k 发布的关于 ImageMagick 的优秀文章。但我决定采用在其他 Web 语言(如 PHP)中易于完成的 ImageMagick 命令行执行方式。

这里展示的所有基本 ImageMagick 功能都完全通过命令行执行。

Using the Code

使用这段代码非常简单。但你必须从 ImageMagick.org 下载 ImageMagick 的 DLL 版本,用于 Windows。使用以下链接下载 ImageMagick。

https://imagemagick.org.cn/script/binary-releases.php#windows

从上面的链接下载 ImageMagick-6.3.7-10-Q16-windows-dll.exe。安装安装文件。你的设置就完成了。现在使用你的编辑器打开项目。

***[更新] 你也可以查看 ImageMagick-6.5.3-Q16-windows.zip。它是 ImageMagick 的二进制版本。请遵循下一个 * 标记的部分,了解 imagemagick 二进制文件的使用方法。 

现在,这是你应该知道的关于使用命令行执行 EXE 的主要内容

Dim proc As New Diagnostics.Process()
proc.StartInfo.Arguments = fileargs
proc.StartInfo.FileName = Server.MapPath("MagickCMD.exe")
proc.StartInfo.UseShellExecute = False
proc.StartInfo.CreateNoWindow = True
proc.StartInfo.RedirectStandardOutput = False
proc.Start()

现在 MagicCMD.exe 是每次使用命令行参数执行的关键。命令行参数通过 "fileargs" 变量传递。Fileargs 的编写方式如下

"convert " & Server.MapPath(source) & " -rotate 90 " & Server.MapPath(flname)

***[更新] Imagemagick 二进制文件更有趣。从上面的链接下载 imagemagick 二进制文件。解压缩文件夹,你会看到每个可能的 imagemagick 操作符都有 *.exe 文件 [例如 convert、compose、montage 等]。因此,你可以直接在你的应用程序中使用这些操作符。例如,要调整图像大小,你只需要以以下格式编写它

convert -resize 500x200 C:\source.jpg C:\result.jpg
然后以以下格式使用路径。请注意,这里 convert.exe 已被应用程序直接使用。
Dim proc As New Diagnostics.Process()
proc.StartInfo.Arguments = fileargs
proc.StartInfo.FileName = Server.MapPath("magick\convert.exe")
proc.StartInfo.UseShellExecute = False
proc.StartInfo.CreateNoWindow = True
proc.StartInfo.RedirectStandardOutput = False
proc.Start()

其余的都一样。命令行仅因各种功能而异。我只使用了 ImageMagick 的 12 个功能。还有很多事情可以做。访问下面的链接以获取更多命令

https://imagemagick.org.cn/script/command-line-options.php#depth
© . All rights reserved.