如何在节点中使用 Imagemagick 调整图像大小并降低 DPI

我正在尝试使用包一次调整图像大小并降低其 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”


隔江千里
浏览 271回答 1
1回答

收到一只叮咚

您错误地运行了 Microsoft 提供的程序CONVERT.EXE,该程序将 FAT 文件系统转换为 NTFS(或类似的东西),而不是您想要的ImageMagick命令。根据您要使用的ImageMagick版本,解决方案可能会有所不同。如果您想使用ImageMagick v7(这是最好且明智的想法),命令已更改如下:Old v6 command |&nbsp; New v7 command===============|================identify&nbsp; &nbsp; &nbsp; &nbsp;| magick identifyanimate&nbsp; &nbsp; &nbsp; &nbsp; | magick animatemontage&nbsp; &nbsp; &nbsp; &nbsp; | magick montageconvert&nbsp; &nbsp; &nbsp; &nbsp; | magickmogrify&nbsp; &nbsp; &nbsp; &nbsp; | magick mogrify&nbsp; &nbsp;&nbsp;因此,您需要更改您的 Javascript 以使用magick而不是convert.如果要使用 v6 ImageMagick,则需要继续使用,convert但要确保 Windows 找到ImageMagick convert而不是 Windows C:\WINDOWS\SYSTEM32\CONVERT.EXE。您可以通过显式运行完整的ImageMagick命令来做到这一点,因此convert您可以使用大致如下所示的完整路径,而不是普通路径:C:\ImageMagick\ImageMagick-6.7.6\convert ...或者您PATH在某个 GUI 窗口中设置您的(我避免使用 Windows,但它类似于Settings-> Control Panel-> System-> Environment Variables-> PATH)并使包含 ImageMagick 的目录位于最前面,以便 Windows 在其自己之前找到 ImageMagick CONVERT.EXE:PATH=C:\ImageMagick\ImageMagick-6.7.6:<REST OF PATH>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript