使用ImageMagick从VBA转换图像

使用ImageMagick从VBA转换图像,vba,imagemagick,imagemagick-convert,Vba,Imagemagick,Imagemagick Convert,我想用VBA中的ImageMagick将从internet下载的图像[1]转换为JPGs。到目前为止,我尝试了两种方法,但都失败了 首先,我尝试使用ImageMagickObject 1.0类型库: Private子命令按钮单击() Dim sURL作为字符串,sNetFile作为字符串,sLocalFile作为字符串_ cmd作为字符串,RetVal作为整数,img作为对象 设置img=newimagemagickobject.MagickImage sURL=UserForm1.TextBo

我想用VBA中的ImageMagick将从internet下载的图像[1]转换为JPGs。到目前为止,我尝试了两种方法,但都失败了

首先,我尝试使用ImageMagickObject 1.0类型库:

Private子命令按钮单击()
Dim sURL作为字符串,sNetFile作为字符串,sLocalFile作为字符串_
cmd作为字符串,RetVal作为整数,img作为对象
设置img=newimagemagickobject.MagickImage
sURL=UserForm1.TextBoxImgURL
sLocalFile=“C:\temp\”&UserForm1.TextBoxName
downloadfilesurl,sLocalFile'函数,用于从URL下载图像并将其保存到本地目录

RetVal=img.Convert(sLocalFile,sLocalFile&“.jpg”)”问题在于
Shell实际上只用于打开程序。因此,有必要实际告诉它打开命令提示符并运行相应的命令。这可以通过使用
Shell
命令将行更改为以下内容来实现:

RetVal=Shell(“cmd.exe/c convert.exe”“&sLocalFile&”“sLocalFile&”“jpg”“”)

问题在于
外壳实际上只用于打开程序。因此,有必要实际告诉它打开命令提示符并运行相应的命令。这可以通过使用
Shell
命令将行更改为以下内容来实现:

RetVal=Shell(“cmd.exe/c convert.exe”“&sLocalFile&”“sLocalFile&”“jpg”“”)

convert.exe的完整路径是否已尝试?是。我这样做了,结果一点也没有改变。
Shell(“cmd.exe/c”“”&sLocalFile&“&sLocalFile&”“&sLocalFile&“.jpg”“”)
?感觉接近正确答案,但当我在命令行中输入
cmd.exe/c“c:\Program Files\ImageMagick-6.9.2-Q16\convert.exe”“c:\temp\Image”“c:\temp\Image.jpg”
时,返回以下错误:
'C:\Program'未被识别为内部或外部命令、可操作程序或批处理文件。
只是在没有完整路径的情况下尝试了它(即仅使用
convert.exe
),这似乎可以正常工作。如果你发布了一个答案,我会接受的。你有没有尝试转换到convert.exe的完整路径?是的。我这样做了,结果一点也没有改变。
Shell(“cmd.exe/c”“”&sLocalFile&“&sLocalFile&”“&sLocalFile&“.jpg”“”)
?感觉接近正确答案,但当我在命令行中输入
cmd.exe/c“c:\Program Files\ImageMagick-6.9.2-Q16\convert.exe”“c:\temp\Image”“c:\temp\Image.jpg”
时,返回以下错误:
'C:\Program'未被识别为内部或外部命令、可操作程序或批处理文件。
只是在没有完整路径的情况下尝试了它(即仅使用
convert.exe
),这似乎可以正常工作。如果你把答案贴上去,我会接受的。