我正在尝试使用软件包立即调整图像大小并减小其DPI。
我使用的是im.convert()而不是im.resize(),因为我还有其他一些需要指定的选项。我试图将具有所有选项的数组传递给im.convert(),但出现一个错误,提示“错误:命令失败:参数无效--units”
const inputPath = "E:\PC\lister\uploads\dbmid_AAAeU6UkAOHoUmq6t25RPjK6g1sfK6gn7fg\Clients\Matt\2019-06-10T03-32-02.385Z45.jpg";'
const outputPath= "E:\PC\lister\uploads\dbmid_AAAeU6UkAOHoUmq6t25RPjK6g1sfK6gn7fg\Clients\Matt\Web\2019-06-10T03-32-02.385Z45.jpg";
const args = [
inputPath,
"-units",
"pixelsperinch",
"-density",
"75x75",
"-resize",
"1920",
outputPath
]
im.convert(args, function(err, stdout, stderr) {
if(err) console.log(err)
});
我期望在上面的outputPath
中指定的名为“ web”的文件夹中以75dpi调整尺寸的图像。但我收到一条错误消息,提示“错误:命令失败:参数无效--units”
答案 0 :(得分:2)
您错误地运行了Microsoft提供的名为CONVERT.EXE
的程序,该程序将FAT文件系统转换为NTFS(或类似的东西),而不是您想要的 ImageMagick 命令。根据要使用的 ImageMagick 的版本,解决方案可能会有所不同。
如果要使用 ImageMagick v7(这是最好且明智的主意),则命令已更改如下:
Old v6 command | New v7 command
===============|================
identify | magick identify
animate | magick animate
montage | magick montage
convert | magick
mogrify | magick mogrify
因此,您需要将Javascript更改为使用magick
而不是convert
。
如果要使用v6 ImageMagick ,则需要继续使用convert
,但要确保Windows找到的是 ImageMagick convert
,而不是Windows C:\WINDOWS\SYSTEM32\CONVERT.EXE
。您可以通过显式运行完整的 ImageMagick 命令来执行此操作,因此,您可以使用看起来像这样的完整路径来代替普通的convert
:
C:\ImageMagick\ImageMagick-6.7.6\convert ...
或者您在某个GUI窗口中设置PATH
(我避免使用Windows,但这类似于Settings
-> Control Panel
-> System
-> {{1} }-> Environment Variables
)并将其放置在包含ImageMagick的目录的最前面,以便Windows在其自己的PATH
之前找到ImageMagick:
CONVERT.EXE