- ImageMagick или как сжимать изображения в ОС Linux
- Категории блога
- Установка ImageMagick
- Команды для работы ImageMagick в терминале
- convert — изменение размера изображения
- -quality
- -resize
- -rotate
- Группировка команд
- identify — проверка информации о изображении
- Пакетная обработка изображений с помощью ImageMagick
- Сжатие изображений формата JPEG в командной строке Linux
- Установка Jpegoptim в Linux
- Сжатие изображений JPEG без потерь
- Сжатие изображений JPEG с потерями
- Пакетное сжатие изображений
- Как конвертировать изображения с помощью Linux
- Команда Преобразования
- Как изменить размер изображения
- Как конвертировать из одного формата изображения в другой
- Как настроить размер файла для изображения
- Как вращать изображения
- Конвертировать параметры командной строки
ImageMagick или как сжимать изображения в ОС Linux
Категории блога
Очень долгое время я пользовался программой RIOT, но на тот период я плотно сидел на операционных системах семейства Windows. И вот на протяжении уже нескольких лет я использую ОС Ubuntu. Долгое время я работал с RIOT установленным через wine. С сегодняшнего дня я решил использовать меньше костылей и заняться вплотную изучением команд терминала Linux. На сайте программы RIOT есть ссылка на скачивание плагина для популярного редактора Gimp. Но запускать софт такого размера ради сжатия одного изображения мне крайне не хочется.
Поэтому сегодня речь пойдет об утилите ImageMagick.
ImageMagick это огромный бесплатный многоплатформенный комплекс утилит, который поддерживается многими языками программирования, и существует как отдельный комплекс. Думаю тем, кто как-то связан с веб-разработкой, с ImageMagick знаком не понаслышке.
Конечно может, кому то покажется совершенно неудобным работать с изображениям с помощью консольной утилиты. Но я в любом случае советую попробовать.
Установка ImageMagick
На данный момент моей операционной системой является Linux Ubuntu 14.04, поэтому и примеры буду приводить именно из нее. Итак перейдем к установке ImageMagick в Linux Ubuntu 14.04:
Перед тем как устанавливать этот пакет, проверьте, возможно он у вас уже есть, и какая у него версия:
dpkg -s imagemagick
Это команда проверит какая версия пакета ImageMagick установлена в вашей системе.
У меня этот пакет оказался установленным. Для тех у кого этого пакета нет, выполните следующую команду(собственно сама установка):
sudo apt-get install imagemagick
Команды для работы ImageMagick в терминале
Команд и утилит входящих в состав ImageMagick очень много, и описывать все я здесь не буду, так как не вижу в этом особого смысла. Ведь все есть в официальной документации, которая лежит здесь. Я покажу лишь те которые использую сам.
convert — изменение размера изображения
input_image — имя файла изображения, которое нужно взять за основу для работы
commands — дополнительные команды/параметры
out_image — имя изображения в которое будут сохранены все преобразования исходного
Что бы просто конвертировать изображение одного формата в другой формат, нужно сделать следующее:
convert img.png img.jpg
-quality
Уровень сжатия изображения можно указать с помощью параметра -quality:
convert img.jpg -quality 75 img1.jpg
Вы можете указать здесь в качестве значения цифры от 1 до 100. По умолчанию используется значение 92. Я обычно для блога сжимаю с параметром 75.
-resize
Для того что бы изменить размер изображения нужно воспользоваться параметром -resize:
convert img.jpg -resize 100×150 img1.jpg
Здесь есть несколько схем подобного сжатия:
-resize — изменение изображения и его размеров в пикселях, с сохранением соотношения сторон
convert img.jpg -resize 100×150 img1.jpg
Сжатие изображения по ширине до 100px, при этом высота будет сжата пропорционально
convert img.jpg -resize 100 img1.jpg
Аналогичное предыдущему, только здесь изображение сжимается по высоте до 150px
convert img.jpg -resize ×150 img1.jpg
-resize — изменение размеров изображения без сохранения соотношения сторон
convert img.jpg -resize 100×150! img1.jpg
-resize — изменение размера изображения в %(процентах)
convert img.jpg -resize 20% img1.jpg
-rotate
Для того что бы повернуть изображение существует параметр -rotate, где значение указывается в градусах:
convert img.jpg -rotate 20 img1.jpg
Группировка команд
Самое удобное что есть — это группировка команд. То есть по сути можно сделать следующее(изменить размер, повернуть на 120 градусов, и изменить качество, еще и поменять формат с png на jpg):
convert img.png -resize 100×400 -rotate 120 -quality 75 img.jpg
identify — проверка информации о изображении
Сокращенная информация о изображении:
А та же команда с параметром -verbose выведет полную информацию о изображении.
identify -verbose img.jpg
Пакетная обработка изображений с помощью ImageMagick
Я сам ей практически и не пользуюсь. Мне чаще все таки нужно работать с отдельными изображениями. Следующая команда обработает все изображения с разрешением .png повернет их на 180 градусов и запишет в файлы с новым именем rotated-предыдущее имя файла.
for file in *.png; do convert $file -rotate 180 rotated-$file; done
В общем утилита ImageMagick очень удобна и хороша в работе. А главное она сжимает практически без потерь качества, что немаловажно. Конечно она не подойдет для тех кто терпеть не может консоль. Но я для других — очень даже ничего:)
Пользуйтесь!;)
Источник
Сжатие изображений формата JPEG в командной строке Linux
Разрешение фотографий, которые делают с помощью цифровых камер и смартфонов, постоянно увеличивается. Появившийся недавно в продаже Nikon D800 с разрешением 36,3 мегапиксел — это уже далеко не предел. В связи с ростом количества снимков в высоком разрешении часто требуется их постобработка с целью уменьшения размера для последущей их загрузки в онлайн-хранилища и облачные сервисы, так как размер предоставляемого там дискового пространства как правило ограничен.
На самом деле сжатие изображений формата JPEG в Linux не представляет сложности, так как есть утилита командной строки «jpegoptim», которая позволяет оптимизировать jpeg-изображения без потери качества. Если ваше дисковое пространство или трафик действительно сильно ограничены, jpegoptim позволяет также производить сжатие с потерями, чтобы получить файл требуемого размера.
Установка Jpegoptim в Linux
Установка jpegoptim в Ubuntu, Debian или Linux Mint:
Установка jpegoptim в Fedora:
Для установки jpegoptim в CentOS/RHEL, сначала активируйте репозиторий EPEL, затем введите:
Сжатие изображений JPEG без потерь
Для сжатия изображения без потерь используется команда:
Обратите внимание, что при этом исходное изображение перезаписывается сжатым.
Если сжатие изображения без потерь уже невозможно, jpegoptim не будет перезаписывать файл.
Если вы хотите сохранить исходное изображение, с помощью опции «-d» укажите директорию для сохранения сжатого изображения.
Если вы хотите сохранить время создания/модификации исходного изображения, используйте опцию «-p». При этом сжатое изображение будет записано с той же датой и временем, что и оригинальный файл.
Если вы хотите просто проверить возможность и степень сжатия, без его выполнения, используйте опцию «-n». При этом сжатие будет смоделировано, и выведен его без результат.
Сжатие изображений JPEG с потерями
В случае, если вам действительно очень нужно освободить дисковое пространство, вы можете попробовать сжатие с потерями.
В этом случае используйте опцию «-m «, где качество задается в диапазоне от 0 до 100 (0 — наихудшее качество, 100 — наилучшее качество).
Например, для сжатия изображения с 50% качеством:
Ценой снижения качества вы получите файл меньшего размера.
Пакетное сжатие изображений
Часто требуется сжать большое количество изображений, находящихся в одной директории. В этом случае вы можете использовать следующий скрипт:
Источник
Как конвертировать изображения с помощью Linux
Это руководство покажет вам, как управлять изображениями с помощью командной строки Linux.
Вы узнаете, как изменить размер изображения с точки зрения размера файла и масштаба. Вы также узнаете, как конвертировать файлы разных типов, например, из JPG в PNG или из GIF в TIF.
Команда Преобразования
Команда convert используется для преобразования изображения. Формат выглядит следующим образом:
конвертировать [входные параметры] входной файл [выходные параметры] выходной файл.
Как изменить размер изображения
Если вы собираетесь добавить изображение на веб-страницу и хотите, чтобы оно было определенного размера, вы можете использовать CSS для изменения размера изображения.
Хотя на самом деле лучше сначала загрузить изображение правильного размера и вставить его на страницу.
Это, конечно, только один пример, почему вы можете изменить размер изображения.
Чтобы изменить размер изображения, используйте следующую команду
convert imagename.jpg — изменить размеры newimagename.jpg
Например, чтобы преобразовать изображение в 800×600, вы должны использовать следующую команду:
convert imagename.jpg -resize 800×600 newimagename.jpg
Если при преобразовании в указанные размеры соотношение сторон будет испорчено, изображение будет изменено до ближайшего соотношения.
Чтобы преобразование было точным, используйте следующую команду:
convert imagename.jpg — изменить размер 800×600! newimagename.jpg
Вам не нужно указывать высоту и ширину как часть команды изменения размера. Например, если вы хотите, чтобы ширина была 800, и вас не заботит высота, вы можете использовать следующую команду:
convert imagename.jpg -resize 800 newimagename.jpg
Чтобы изменить размер изображения до указанной высоты, используйте следующую команду:
конвертировать imagename, jpg -resize x600 newimagename.jpg
Как конвертировать из одного формата изображения в другой
Если у вас есть файл JPG, и вы хотите преобразовать его в формат PNG, используйте следующую команду:
convert image.jpg image.png
Вы можете комбинировать много разных форматов файлов. Например
convert image.png image.gif
convert image.jpg image.bmp
convert image.gif image.tif
Как настроить размер файла для изображения
Существует несколько способов изменить физический размер файла изображения.
- Изменить соотношение сторон (сделать его меньше)
- Изменить формат файла
- Изменить качество сжатия
Уменьшение размера изображения приведет к уменьшению размера файла. Кроме того, использование формата файла, который включает сжатие, такого как JPG, позволит вам уменьшить физический размер файла.
Наконец, изменение качества уменьшит физический размер файла.
Предыдущие 2 раздела показали, как настроить размер и тип файла. Чтобы сжать изображение, попробуйте следующую команду:
convert imagename.jpg — качество 90 newimage.jpg
Качество указывается в процентах. Чем ниже процент, тем меньше выходной файл, но очевидно, что конечное качество вывода не так хорошо.
Как вращать изображения
Если вы сделали фотографию в портретной ориентации, но хотите, чтобы она была пейзажной, вы можете повернуть ее с помощью следующей команды:
convert imagename.jpg -ротация 90 newimage.jpg
Вы можете указать любой угол поворота.
Например, попробуйте это:
convert imagename.jpg -rotate 45 newimage.jpg
Конвертировать параметры командной строки
Есть десятки параметров командной строки, которые можно использовать с командой convert, как показано здесь:
Опции обрабатываются в порядке командной строки. Любая опция, указанная вами в командной строке, остается в силе для следующего набора изображений до тех пор, пока набор не будет прерван появлением какой-либо опции или -noop . Некоторые параметры влияют только на декодирование изображений, а другие только на кодирование. Последний может появиться после последней группы входных изображений.
Более подробное описание каждого параметра см. В разделе ImageMagick .
-adjoin | объединить изображения в один файл из нескольких изображений |
-аффинны | матрица преобразования рисунка |
-antialias | удалить псевдонимы пикселей |
-append | добавить набор изображений |
-среднее | усредняет набор изображений |
-background | цвет фона |
-blur x | размытие изображения с помощью гауссовского оператора |
-border x | окружите изображение цветной рамкой |
-bordercolor | цвет границы |
-Box | установить цвет рамки аннотации |
-cache | мегабайт памяти доступно для пиксельного кэша |
канальное | тип канала |
-charcoal | имитировать рисунок углем |
-chop x <+ -> удаляет пиксели из внутренней части изображения | |
-Clip | применить обтравочный контур, если он есть |
-coalesce | объединить последовательность изображений |
-colorize | раскрасьте изображение цветом пера |
-Цвета | предпочтительное количество цветов на изображении |
-colorspace | тип цветового пространства |
-comment | комментирует изображение с комментарием |
-compose | тип композиции изображения |
-compress | тип сжатия изображения |
-contrast | увеличить или уменьшить контрастность изображения |
-crop x <+ -> предпочтительный размер и расположение обрезанного изображения | |
-циклом | сместить цветовую карту изображения на сумму |
-debug | включить распечатку отладки |
-deconstruct | разбить последовательность изображений на составные части |
-delay | отобразить следующее изображение после паузы |
-density x | вертикальное и горизонтальное разрешение в пикселях изображения |
-depth | глубина изображения |
-despeckle | уменьшить спеклы на изображении |
-display | указывает X-сервер для связи |
-dispose | метод удаления GIF |
-dither | применить диффузию ошибок Флойда/Стейнберга к изображению |
-draw | комментирует изображение с одним или несколькими графическими примитивами |
-Станок | обнаруживать края в изображении |
-emboss | тиснение изображения |
-encoding | указать кодировку шрифта |
-endian | указывает порядковый номер (MSB или LSB) выходного изображения |
-enhance | применить цифровой фильтр для улучшения изображения с шумом |
-equalize | выполнить выравнивание гистограммы к изображению |
-fill | цвет, используемый при заполнении графического примитива |
-filter | используйте этот тип фильтра при изменении размера изображения |
-flatten | сгладить последовательность изображений |
-flip | создать “зеркальное отображение” |
-flop | создать “зеркальное отображение” |
-font | используйте этот шрифт при аннотировании изображения текстом |
-frame x ++ | окружите изображение орнаментальной рамкой |
-fuzz | цвета на этом расстоянии считаются равными |
-gamma | уровень гамма-коррекции |
-гаусский x | размытие изображения с помощью гауссовского оператора |
-геометрия x <+ -> <+ -> <%> <@> <> | предпочитаемый размер и расположение окна изображения. |
-gravity | тяготеет к аннотированию изображения. |
-help | распечатать инструкцию по использованию |
-implode | взорвать пиксели изображения вокруг центра |
-intent | используйте этот тип рендеринга при управлении цветом изображения |
-interlace | тип схемы чередования |
-label | назначить метку изображению |
уровневый | настроить уровень контрастности изображения |
-list | тип списка |
-loop | добавьте расширение цикла Netscape в анимацию GIF |
-map | выберите определенный набор цветов из этого изображения |
-mask | Укажите обтравочную маску |
-matte | сохранить матовый канал, если у изображения есть один |
-медиане | применить медианный фильтр к изображению |
-modulate | изменяет яркость, насыщенность и оттенок изображения |
-monochrome | преобразовать изображение в черно-белое |
-morph | трансформирует последовательность изображений |
-mosaic | создать мозаику из последовательности изображений |
-negate | замените каждый пиксель его дополнительным цветом |
-noise | добавить или уменьшить шум на изображении |
-noop | NOOP (без опции) |
-normalize | преобразовать изображение, чтобы охватить весь диапазон значений цвета |
-opaque | измените этот цвет на цвет пера внутри изображения |
-page x <+ -> <+ -> <%> <> | размер и расположение холста изображения |
-paint | имитировать масляную живопись |
-pen | укажите цвет пера для операций рисования |
-ping | эффективно определять характеристики изображения |
-pointsize | pointsize шрифта Postscript, OPTION1 или TrueType |
-Preview | тип предварительного просмотра изображения |
-процесс | обрабатывать последовательность изображений |
-profile | добавить ICM, IPTC или общий профиль к изображению |
-качество | уровень сжатия JPEG/MIFF/PNG |
-raise x | осветлить или затемнить края изображения |
-region x применить параметры к части изображения | |
-resize x <%> <@> <> | изменить размер изображения |
-roll свернуть изображение по вертикали или по горизонтали | |
-rotate <> | применить поворот изображения Паэта к изображению |
-sample | масштабировать изображение с пиксельной выборкой |
-sampling_factor x | коэффициенты выборки, используемые кодером JPEG или MPEG-2 и YUV-декодером/кодером. |
-scale | масштабировать изображение. |
-scene | установить номер сцены |
-seed | начальное значение генератора псевдослучайных чисел |
-сегмент x | сегментирует изображение |
-shade x | закрасьте изображение, используя удаленный источник света |
-sharpen x | отточить изображение |
-бритье x | брить пиксели от краев изображения |
-shear x | сдвиг изображения вдоль оси X или Y |
-size x | ширина и высота изображения |
-solarize | отменяет все пиксели выше порогового уровня |
-spread | смещать пиксели изображения на случайную величину |
двухтактным | цвет, используемый при поглаживании графического примитива |
-strokewidth | установить ширину штриха |
-swirl | вихревые пиксели изображения вокруг центра |
-texture | название текстуры для мозаичного изображения на фоне изображения |
-threshold | пороговое изображение |
-tile | мозаичное изображение при заполнении графического примитива |
-преобразования | преобразовать изображение |
-transparent | сделайте этот цвет прозрачным внутри изображения |
-treedepth | глубина дерева для алгоритма уменьшения цвета |
-trim | обрезать изображение |
-type | тип изображения |
-единицы | тип разрешения изображения |
-unsharp x | резкость изображения с помощью оператора нерезкой маски |
-use_pixmap | использовать растровое изображение |
-verbose | распечатать подробную информацию об изображении |
-view | Параметры просмотра FlashPix |
-wave x | изменить изображение вдоль синусоиды |
-Write | написать последовательность изображений [ convert, Composite ] |
Для получения дополнительной информации прочитайте страницу руководства для команды convert.
Источник