Как изменить размер изображения и уменьшить DPI, используя Imagemagick в узле - PullRequest
3 голосов
/ 10 июня 2019

Я пытаюсь изменить размер изображения и уменьшить его 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)

});

Я ожидаюизмененное изображение с разрешением 75 точек на дюйм в папке с именем «web», которую я указал в outputPath выше.но я получаю сообщение об ошибке «Ошибка: команда не выполнена: недопустимый параметр - -units»

1 Ответ

2 голосов
/ 10 июня 2019

Вы по ошибке запускаете программу 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 ...

или вы установили 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>
...