在进行图像处理工作时,可能会遇到需要根据用户提供的数据重新绘制图像的情况。这时,ImageMagick成为了一个非常有用的工具。尽管在ASP.NET中关于ImageMagick的资料和帮助相对较少,但通过命令行执行ImageMagick的操作可以轻松实现,这在其他Web语言如PHP中已经很常见。
本文将介绍如何在ASP.NET项目中使用ImageMagick,包括如何下载和安装ImageMagick,以及如何通过命令行执行基本的图像处理功能。
首先,需要从ImageMagick官方网站下载适用于Windows的DLL版本。以下是下载链接:
下载并安装名为ImageMagick-6.3.7-10-Q16-windows-dll.exe
的安装文件。如果需要更新的版本,可以下载ImageMagick-6.5.3-Q16-windows.zip
。
安装完成后,可以使用文本编辑器打开项目。
要通过命令行执行EXE文件,需要了解一些关键步骤。以下是VB.NET中执行ImageMagick命令行的示例代码:
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()
在上述代码中,MagickCMD.exe
是每次通过命令行参数执行的关键。命令行参数通过变量fileargs
传递。
变量fileargs
的格式如下:
"convert " & Server.MapPath(source) & " -rotate 90 " & Server.MapPath(flname)
如果使用的是ImageMagick的二进制版本,可以直接使用各种操作符(如convert, compose, montage等)。例如,要调整图像大小,可以按照以下格式编写代码:
convert -resize 500x200 C:\source.jpg C:\result.jpg
然后使用以下格式的路径:
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()