Как установить и пользоваться ImageMagick на Windows

Оглавление

1. Что такое ImageMagick. Для чего нужна ImageMagick

2. Где скачать ImageMagick для Windows. Как установить ImageMagick на Windows

3. Как запустить ImageMagick в Windows

4. Как запускать команды ImageMagick в Windows

5. Как конвертировать изображения с помощью ImageMagick в Windows

6. Как уменьшить размер фотографий в ImageMagick

6.1 Увеличение уровня сжатия изображений

6.2 Уменьшение разрешения фотографий для экономии места

7. Модификация изображений в ImageMagick. Опции magick

7.1 Как имитировать картину маслом

7.2 Как имитировать рисунок углем

7.3 Как имитировать карандашный набросок

7.4 Как сделать изображение чёрно-белым

7.5 Создание негатива изображения

7.6 Как сделать зеркальное изображение (по горизонтали или вертикали) в командной строке Linux

7.7 Как повернуть изображение в командной строке Linux

7.8 Прокручивание изображений. Эффект киноплёнки

7.9 Как имитировать фото Polaroid в командной строке

7.10 Как уменьшить шумность картинки в командной строке Linux

7.11 Как увеличить шумность картинки в командной строке Linux

7.12 Как осветлить или затемнить края изображения

7.13 Как создать рамку вокруг изображения

7.14 Как создать виньетку

7.15 Как сделать изображение светлее. Как увеличить экспозицию

7.16 Как сделать изображение темнее. Как уменьшить экспозицию

8. Пакетная обработка изображений в ImageMagick

Задача 1: конвертировать все файлы JPG в текущей директории в формат WebP и сохранить их в новой папке

Задача 2: конвертировать все файлы JPG в текущей директории в формат AVIF и сохранить их в новой папке

Задача 3: Уменьшить размер всех файлов JPG в текущей папке. В качестве метода уменьшения размера использовать увеличение уровня сжатия

9. Продолжение знакомства с ImageMagick


1. Что такое ImageMagick. Для чего нужна ImageMagick

ImageMagick — это мощнейший инструмент для работы с изображениями. Данная программа может делать самые различные действия с фотографиями в любых форматах. К примеру, ImageMagick может конвертировать изображения из одного формата в другой, при этом поддерживаются десятки форматов (по крайней мере в Linux, в Windows поддержка некоторых форматов может быть ограниченной (только чтение) или не работать из-за отсутствия необходимых библиотек).

Кроме конвертации, ImageMagick может добавлять надписи в различных стилях на изображение, поворачивать, обрезать изображение, накладывать различные эффекты на всё изображение или на отдельные его области, уменьшать размер файла изображения за счёт уменьшения размера (количества пикселей) и степени сжатия, выводить подробные сведения об изображениях, выполнять перечисленные и другие действия в пакетом режиме, то есть сразу для большого количества файлов.

При этом ImageMagick бесплатна и у этой программы открытый исходный код.

Тогда почему, возможно, вы никогда не видели и не пользовались программой ImageMagick, если это такой потрясающий инструмент? Дело в том, что ImageMagick это утилита командной строки. Да, чтобы воспользоваться ImageMagick нужно для начала изучить структуру команд этого пакета и немного освоиться с командной строкой. Но оно того стоит! Ваши усилия будут вознаграждены сторицей, это я вам гарантирую!

2. Где скачать ImageMagick для Windows. Как установить ImageMagick на Windows

ImageMagick работает на Windows 10 (x86, x64 и arm64) или более новой версии или Windows Server 2012 или более новой версии.

Объем памяти может быть важным фактором, особенно если вы собираетесь работать с большими изображениями. Рекомендуется минимум 512 МБ ОЗУ, но чем больше ОЗУ, тем лучше. Хотя ImageMagick хорошо работает на одноядерном компьютере, он автоматически работает параллельно на многоядерных системах, что значительно сокращает время выполнения.

Перейдите на официальную страницу программы: https://imagemagick.org/script/download.php#windows

Вас может сбить с толку обилие вариантов файлов для загрузки. Если вам не хочется с этим разбираться, то самый верхний вариант подойдёт большинству пользователей и предложит наибольшее количество возможностей.

Версии с Q8 в названии поддерживают 8-битные изображения (то есть 8-битный красный, 8-битный зелёный и т. д.), тогда как Q16 в имени файла поддерживают глубину цвета до 16 бит. Версия Q16 позволяет вам читать или записывать 16-битные изображения без потери точности, но требует вдвое больше ресурсов, чем версия Q8. Версии с dll в имени файла включают библиотеки ImageMagick как динамически подключаемые библиотеки. Если у вас не 32-битная ОС Windows, мы рекомендуем эту версию ImageMagick для 64-битной Windows:

Скачайте установочный файл и запустите его как инстолятор для любой другой программы. Вы увидите стандартные вопрос (например, путь, куда установить программу) — вы можете оставить всё по умолчанию.

Весьма важная настройка показана на следующем окне, а именно «Add application directory to your system path», то есть «Добавить директорию приложения в системную переменную окружения PATH». Благодаря этой настройки, работа с командами ImageMagick будет значительно облегчена — мы сможем запускать программу по её короткому имени, без необходимости указывать полный путь до исполнимого файла. По умолчанию эта настройка уже включена — просто оставьте всё как есть.

3. Как запустить ImageMagick в Windows

После того, как установка завершена, можно начать использовать программу.

Для этого откройте командную строку Windows — это может быть приложение Terminal, CMD, консоль PowerShell — что угодно.

К примеру, чтобы открыть окно Terminal, нажмите Win+x и в открывшемся контекстом меню выберите «Terminal».

Или найдите приложение Terminal с помощью поиска в меню Пуск.

ЛИБО чтобы открыть CMD, нажмите Win+r и запустите

cmd

Итак, теперь, когда открыта командная строка, введите вашу первую команду ImageMagick

magick -list format

И нажмите клавишу Enter.

Будет выведена таблица с большим количеством данных — это информациях о форматах изображений, которые поддерживает ImageMagick.

Смотрите также: Ошибка ImageMagick в Windows: «magick: unable to open image »test’: No such file or directory @ error/blob.c/OpenBlob/3565. magick: no decode delegate for this image format `’ @ error/constitute.c/ReadImage/741.» (РЕШЕНО)

4. Как запускать команды ImageMagick в Windows

Типичные команды ImageMagick имеют следующий вид:

magick ИМЯ_ВХОДНОГО_ФАЙЛА ИМЯ_ВЫХОДНОГО_ФАЙЛА

magick ИМЯ_ВХОДНОГО_ФАЙЛА ОПЦИИ ИМЯ_ВЫХОДНОГО_ФАЙЛА

В этих командах:

  • magick — имя исполнимого файла, который выполняет действие
  • ИМЯ_ВХОДНОГО_ФАЙЛА — путь до файла, который вы хотите обработать
  • ОПЦИИ — опции могут отсутствовать, несколько примеров использования опций будут рассмотрены ниже
  • ИМЯ_ВЫХОДНОГО_ФАЙЛА — путь до нового файла, куда будет сохранён результат выполнения команды

Обратите внимание, что путь до файлов можно указывать в качестве относительного пути, так и в качестве абсолютного пути. Если указано только имя файла (без папок и подпапок), то программа будет искать файл с этим именем в текущей рабочей директории.

Смотрите также:

Чтобы не указывать полный путь до файлов, вы можете перейти в командной строке в папку с фотографиями. Например, фотографии которые я хочу обработать находятся в папке C:\Users\MiAl\Downloads\pic\, тогда мне нужно выполнить следующую команду, чтобы туда перейти:

cd C:\Users\MiAl\Downloads\pic\

5. Как конвертировать изображения с помощью ImageMagick в Windows

Команда для конвертации файлов весьма проста — нужно указать файл, который вы хотите конвертировать, а затем файл с расширением, в который вы хотите конвертировать фотографию.

Например, я хочу конвертировать файл 20240111_130337.jpg в формат WebP, тогда мне нужно указать имя файла с новым форматом:

magick 20240111_130337.jpg 20240111_130337.webp

В результате работы команды создан новый файл 20240111_130337.webp:

В результате конвертации в формат WebP фотография занимает меньше места при этом сохраняя качество оригинала. Как вы можете убедиться, формат WebP отлично поддерживается как ОС Windows так и веб-браузерами:

Имя файла нового файла можно выбрать любое — главное, правильно указать желаемое расширение файла, например:

magick 20240111_130337.jpg island.webp

ImageMagick поддерживает самые разные форматы изображений, например, я могу конвертировать фотографию в современный формат AVIF:

magick 20240116_121213.jpg 20240116_121213.avif

В результате работы команды создан новый файл 20240116_121213.avif:

Файл в формате AVIF занимает в разы меньше места чем JPG, при этом сохраняет качество оригинала:

Смотрите также: Конвертация изображений в любые форматы

6. Как уменьшить размер фотографий в ImageMagick

Рассмотрим ещё один полезный пример использование ImageMagick, а именно изменение сжатие фотографий.

Сначала немного теории.

Фотографии можно сжать несколькими способами, например:

1) Конвертировать в формат, поддерживающий лучшую степень сжатия (например, AVIF, HEIC)

2) Увеличить степень сжатия — это повлияет на качество фотоснимка, но и уменьшит размер занимаемого места

3) Уменьшить количество пикселей — это также сократит количество занимаемого места, что касается качества фотографии, то на это будет влиять, например, на каком устройстве вы её смотрите и делаете ли вы зумирование при просмотре фото

6.1 Увеличение уровня сжатия изображений

Начнём с увеличения уровня сжатия. Для этого используется команда вида:

magick ИМЯ_ВХОДНОГО_ФАЙЛА -quality ЗНАЧЕНИЕ ИМЯ_ВЫХОДНОГО_ФАЙЛА

В качестве ЗНАЧЕНИЯ нужно указать число от 1 до 100 — чем меньше число, тем выше уровень сжатия, то есть файл будет занимать меньше места, но и фотография будет выглядеть хуже.

К примеру, я хочу сжать файл 20240116_115638.jpg (размер 3.7 мегабайта) и сохранить сжатое изображение в новый файл с именем beach.jpg:

magick 20240116_115638.jpg -quality 40 beach.jpg

В результате создан файл beach.jpg размеров 775 килобайт:

При клике по файлу откроется его полный размер после сжатия:

6.2 Уменьшение разрешения фотографий для экономии места

Другой способ уменьшить размер занимаемого файлом места — это уменьшить количество пикселей в нём, для этого можно использовать команду следующего вида:

magick ИМЯ_ВХОДНОГО_ФАЙЛА -resize ПРОЦЕНТЫ% ИМЯ_ВЫХОДНОГО_ФАЙЛА

В качестве ПРОЦЕНТОВ вы можете указать число — чтобы изображение уменьшилось в размерах, это число должно быть меньше 100, например:

magick 20240116_115638.jpg -resize 50% small.jpg

В результате создан новый файл с именем small.jpg, который на мониторе выглядит довольно приемлемо и при этом занимает всего 679 килобайт:

С опцией -resize вы можете указать желаемую ширину нового файла (высота будет подобрана автоматически, для сохранения пропорций изображения). Например, следующей командой я устанавливаю ширину файла в 1000 пикселей:

magick 20240116_115638.jpg -resize 1000 w1000.jpg

В результате получился файл с шириной 1000 пикселей:

Если вы хотите установить определённую высоту (чтобы ширина была подобрана автоматически), то это тоже возможно — следующая команда сожмёт файл до высоты 1000 пикселей:

magick 20240116_115638.jpg -resize x1000 h1000.jpg

Результатом стал файл с высотой 1000 пикселей и автоматически подобранной шириной для сохранения прежних пропорций:

Думаю, суть вы уловили и научились сжимать файлы желаемым способом в командной строке.

7. Модификация изображений в ImageMagick. Опции magick

Как имитировать картину маслом

Чтобы фотография стала похожа на нарисованную красками картину используйте опцию -paint РАДИУС.

Эта опция создаёт имитацию картины маслом.

Каждый пиксель заменяется наиболее часто встречающимся цветом в круговой окрестности, ширина которой определяется радиусом.

Пример команды:

magick IMAGE.jpg -paint 4 test1.jpg

Результат:

Как имитировать рисунок углем

Чтобы фотография выглядела будто бы нарисована углём, используйте опцию -charcoal РАДИУС.

Пример команды:

magick IMAGE.jpg -charcoal 5 test2.jpg

Результат:

Как имитировать карандашный набросок

Опция -sketch ГЕОМЕТРИЯ создаёт имитацию карандашного наброска.

Пример команды:

magick IMAGE.jpg -sketch 5 test3.jpg

Результат:

У данной опции возможны следующие варианты синтаксиса:

  • -sketch radius
  • -sketch radius{xsigma}+angle

Последний вариант опции создаёт эскиз с заданным радиусом, стандартным отклонением (сигма) и углом. Указанный угол — это угол, под которым нарисовано изображение. Это то направление, с которого люди считают, что объект исходит.

Как сделать изображение чёрно-белым

Как конвертировать изображение в чёрно-белое в командной строке Linux? С помощью опции -monochrome вы можете преобразовать изображение в чёрно-белое.

Пример команды:

magick IMAGE.jpg -monochrome test4.jpg

Результат:

Создание негатива изображения

С помощью опции -negate вы можете заменить каждый пиксель его дополнительным цветом.

Красная, зелёная и синяя интенсивность изображения инвертируются. Белый становится чёрным, жёлтый становится синим и т. д. Используйте +negate, чтобы инвертировать только пиксели изображения в градациях серого.

Пример команды:

magick IMAGE.jpg -negate test5.jpg

Результат:

Как сделать зеркальное изображение (по горизонтали или вертикали) в командной строке Linux

Чтобы отразить изображение по горизонтали или вертикали, используйте опции:

  • -flip (изображение будет отражено, перевёрнуто сверху вниз)
  • -flop (изображение будет отражено, перевёрнуто слева направо — в точности как в зеркале)

Пример команды:

magick IMAGE.jpg -flip test6.jpg

Результат:

Пример команды:

magick IMAGE.jpg -flop test7.jpg

Результат:

Как повернуть изображение в командной строке Linux

Для поворота изображения используйте опцию -rotate ГРАДУСЫ. В качестве градусов может быть установлена как положительная (для поворота по часовой стрелке), так и отрицательная (для поворота против часовойо стрелки) величина. Например:

magick IMAGE.jpg -rotate 30 test8.jpg
magick IMAGE.jpg -rotate -30 test8.jpg

По умолчанию появившиеся пустые углы будут залиты белым цветом, если вы хотите изменить цвет, то используйте опцию -background:

magick IMAGE.jpg -background VioletRed -rotate 30 test8.jpg

Имена всех цветов вы можете посмотреть с помощью следующей команды:

magick -list color

Смотрите также:

Если вы хотите повернуть изображение и заполнить пустые углы растянутыми полосками с цветом по краям картинки, то используйте опцию -distort ScaleRotateTranslate УГОЛ, например:

magick IMAGE.jpg -distort ScaleRotateTranslate 30 test9.jpg

Если вы хотите вместо заполнения пустых краёв сделать так, чтобы изображение было увеличено для заполнения всего пространства, то используйте опцию -distort ScaleRotateTranslate МАСШТАБ,УГОЛ, например:

magick IMAGE.jpg -distort ScaleRotateTranslate 1.5,30 test10.jpg

Опция -distort ScaleRotateTranslate может принимать разное количество аргументов, которые меняют и её поведение:

magick IMAGE.jpg -distort ScaleRotateTranslate 500,500,30 test10.jpg

Подробности смотрите в справке по опции -distorthttps://imagemagick.org/script/command-line-options.php#distort

Ещё две опции, имеющие отношение к повороту и отражению изображений:

  • -transpose: отразит изображение по диагонали от левого верхнего угла к правому нижнему. Эта опция математически транспонирует массив пикселей. Она эквивалентна последовательности опций -flip -rotate 90.
  • -transverse: зеркально отображает изображение по диагонали изображения внизу слева на вверх справа. Эквивалентно операциям -flop -rotate 90.

Примеры использования:

magick IMAGE.jpg -transpose test11.jpg
magick IMAGE.jpg -transverse test11.jpg

Прокручивание изображений. Эффект киноплёнки

Опция -roll ГЕОМЕТРИЯ проворачивает изображение по вертикали или горизонтали так, что его части оказываются на противоположной стороне. В качестве аргумента опции -roll нужно указать два числа, которые могут быть как положительные, так и отрицательные, которые показывают количество пикселей на которое нужно провернуть изображение по вертикали и горизонтали.

Пример команды:

magick IMAGE.jpg -roll +130+150 test11.jpg

Результат:

Как имитировать фото Polaroid в командной строке

С помощью опции -polaroid УГОЛ можно имитировать фото Polaroid.

Угол показывает, на сколько изображение должно быть повёрнуто.

Пример команды:

magick IMAGE.jpg -polaroid -10 test12.jpg

Результат:

Как уменьшить шумность картинки в командной строке Linux

Опция -noise ГЕОМЕТРИЯ в последних версиях ImageMagick не работает, поскольку объявлена устаревшей. Вместо неё используйте сочетание -statistic NonPeak ИНТЕНСИВНОСТЬ.

Например:

magick IMAGE.jpg -statistic NonPeak 3 test13.jpg

Слишком большие значения ИНТЕНСИВНОСТИ делают изображение нереалистичным.

Как увеличить шумность картинки в командной строке Linux

Для увеличения шумности используйте следующий набор опций: -attenuate ИНТЕНСИВНОСТЬ +noise ТИП

В качестве ИНТЕНСИВНОСТИ укажите число (по умолчанию 1.0). В качестве ТИПА шума выберите из следующих вариантов:

  • Gaussian
  • Impulse
  • Laplacian
  • Multiplicative
  • Poisson
  • Random
  • Uniform

Обратите внимание, что Random заменит изображение шумом, а не добавит шум к изображению. Используйте Uniform, если хотите добавить к изображению случайный шум.

Пример команды:

magick IMAGE.jpg -attenuate 1.5 +noise Gaussian test14.jpg

Результат:

Такого же результата вы можете достичь с помощью опции -evaluate, например:

magick IMAGE.jpg -evaluate Gaussian-noise 1.5 test14.jpg

Подробное описание опции -evaluate и её возможные аргументы: https://imagemagick.org/script/command-line-options.php#evaluate

Как осветлить или затемнить края изображения

Опция -raise ЗНАЧЕНИЕ осветлит или затемнит края изображения для создания 3D-эффекта.

Это создаст эффект 3D. Используйте -raise для создания эффекта приподнятости, в противном случае используйте +raise.

magick IMAGE.jpg -raise 50 test22.jpg
magick IMAGE.jpg +raise 50 test22.jpg

В отличие от аналогичной опции -frame (рассмотрена далее), -raise не изменяет размеры изображения.

Как создать рамку вокруг изображения

Чтобы поместить изображение в рамку используйте опцию -frame.

Если вы хотите однотонную рамку без эффектов, то укажите после -frame одно число:

magick IMAGE.jpg -mattecolor peru -frame 19 test23.jpg

Если вы хотите рамку с эффектом объёма, то укажите четыре числа: -frame AxA+B+C:

magick IMAGE.jpg -mattecolor peru -frame 19x19+3+6 test23.jpg

Первые два числа (A) определяют толщину рамки, второе число (B) определяет толщину внешнего края, последнее число (C) определяет толщину внутреннего края.

Опция -mattecolor устанавливает цвет рамки.

Имена всех цветов вы можете посмотреть с помощью следующей команды:

magick -list color

Смотрите также:

Как создать виньетку

Опция -vignette смягчает края изображения в стиле виньетки.

Формат: -vignette РАДИУС{xСИГМА}{+-}x{+-}y{%}

Спад эффекта виньетки контролируется РАДИУСxСИГМА (здесь две переменных radius и sigma, а также знак умножения, то есть radius x sigma). Для номинального спада это будет установлено на 0xsigma (то есть 0 x sigma). Значение 0x0 создаст круг/эллипс без спада. Аргументы x и y управляют размером круга. Большие значения уменьшают радиусы, а меньшие значения увеличивают радиусы. Значения +0+0 будут генерировать круг/эллипс того же размера, что и изображение. Значения по умолчанию для x и y составляют 10% от соответствующего размера изображения. Таким образом, радиусы будут уменьшены на 10 %, т. е. диаметры круга/эллипса будут составлять 80 % от соответствующего размера изображения. Обратите внимание, что символ процента в геометрии влияет на x и y, тогда как радиус и сигма являются абсолютными значениями (например, -vignette "0x2+10%+10%").

Примеры команды:

magick IMAGE.jpg -vignette 20x100 test24.jpg
magick IMAGE.jpg -vignette 0x100 test24.jpg

Результат последней команды:

Множество примеров как сделать разнообразные рамки и обрамления изображений вы найдёте по ссылке: https://imagemagick.org/Usage/thumbnails/

Как сделать изображение светлее. Как увеличить экспозицию

Для увеличения количества белого используйте опцию -sigmoidal-contrast ЧИСЛО,0%. Чем больше ЧИСЛО, тем сильнее будет изменение, например:

magick IMAGE.jpg -sigmoidal-contrast 4,0% test25.jpg

Для уменьшения количества чёрного используйте опцию +sigmoidal-contrast ЧИСЛО,100%. Чем больше ЧИСЛО, тем сильнее будет изменение, например:

magick IMAGE.jpg +sigmoidal-contrast 4,100% test25.jpg

Как сделать изображение темнее. Как уменьшить экспозицию

Для уменьшения количества белого используйте опцию +sigmoidal-contrast ЧИСЛО,0%. Чем больше ЧИСЛО, тем сильнее будет изменение, например:

magick IMAGE.jpg +sigmoidal-contrast 4,0% test26.jpg

Для увеличения количества чёрного используйте опцию -sigmoidal-contrast ЧИСЛО,100%. Чем больше ЧИСЛО, тем сильнее будет изменение, например:

magick IMAGE.jpg -sigmoidal-contrast 4,100% test26.jpg

8. Пакетная обработка изображений в ImageMagick

Вы вполне резонно можете указать, что для рассмотренных выше операций не нужна командная строка — многие пользователи могут проделать аналогичные действия в графическом интерфейсе. В целом это так (особенно сжатие и поворот файлов), но уже касаемо конвертации, то ImageMagick поддерживает намного больше форматов. И главное преимущество командной строки в автоматизации.

Да вы можете быстро сжать один или несколько файлов в графическом интерфейсе — это займёт некоторое время, возможно, сопоставимое с аналогичными действиями в командной строке. Но представьте, что вам нужно обработать сотни или даже тысячи файлов — у вас это займёт много часов времени, а в командной строке это будет сделано автоматически и намного быстрее.

Итак, рассмотрим несколько сценариев.

Задача 1: конвертировать все файлы JPG в текущей директории в формат WebP и сохранить их в новой папке.

Создадим папку, куда будут записаны файлы после конвертации:

mkdir webp

Следующая команда поочерёдно считает все файлы .jpg в текущей директории, конвертирует их в формат WebP и сохранит их в директорию «webp» с прежними именами:

magick *.jpg +adjoin -set filename:currentfile '%t' 'webp/%[filename:currentfile].webp'

После завершения работы команды проверьте содержимое папки webp.

Файлов может быть любое количество — программа выполнит все действия автоматически, а скорость выполнения задачи будет зависеть только от мощности вашего компьютера.

Задача 2: конвертировать все файлы JPG в текущей директории в формат AVIF и сохранить их в новой папке.

Создадим папку, куда будут записаны файлы после конвертации:

mkdir avif

Запускаем команду для конвертации:

magick *.jpg +adjoin -set filename:currentfile '%t' 'avif/%[filename:currentfile].avif'

После завершения работы команды проверьте содержимое папки avif.

Задача 3: Уменьшить размер всех файлов JPG в текущей папке. В качестве метода уменьшения размера использовать увеличение уровня сжатия.

Создадим папку, куда будут записаны файлы после сжатия:

mkdir compressed

Запускаем команду для сжатия файлов:

magick *.jpg -quality 40 -set filename:currentfile '%t' 'compressed/%[filename:currentfile].jpg'

После завершения работы команды сжатые файлы вы найдёте в папке compressed.

Обратите внимание, что файлы стали занимать меньше места на диске:

9. Продолжение знакомства с ImageMagick

Если вы ощутили всю мощь командной строки и ImageMagick, то вы можете продолжить знакомство с этой программой на следующей странице: Руководство по ImageMagick: установка, использование и решение проблем

Примеры из данного руководства применимы для работы ImageMagick в Linux и Windows.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo