ImageMagick — уменьшение размера файлов

Imagemagick Umen Senie Razmera Fajlov



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

Установка ImageMagick

Для этого нам понадобится ImageMagick, поэтому сначала давайте установим его:







судо apt-получить установку имиджмагик



Переключатель качества

Первый и самый простой способ уменьшить размер фото/картинки/видео — это уменьшить качество фото. Переключатель качества представляет уровень сжатия JPEG/MIFF/PNG. Для JPEG и MPEG качество 1 соответствует наивысшему уровню сжатия и наименьшему качеству изображения, а 100 соответствует минимальному уровню сжатия и наилучшему качеству.



Итак, давайте посмотрим на пример; изображение дерева, которое я сделал, имеет разрешение 4624 × 3468 и весит 5,70226 МБ. Это исходное изображение, точнее, JPEG.






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

конвертировать дерево_4624x3468.jpg -качественный 75 дерево_4624x3468_quality75.jpg
конвертировать дерево_4624x3468.jpg -качественный 25 дерево_4624x3468_quality25.jpg



Я уменьшил качество до 75 для одной картинки и до 25 для другой. Исходное изображение было 5,70226 МБ, но изображение с качеством 75 стало 2,74664 МБ, а изображение с качеством 25 стало 1358250 (1,295 МБ). Здесь я бы лично выбрал качество 75%.



Теперь, поскольку нас также заботит фактическое качество фотографии, позвольте мне показать вам фотографии:


дерево_4624x3468_quality75.jpg


дерево_4624x3468_quality25.jpg

Как видите, качество не сильно пострадало, но размер файла стал меньше.

Теперь я попытался сделать то же самое с PNG, и вот что у меня получилось:


Таким образом, он увеличился с 23501600 Б (22,413 МБ) до 22,2854 МБ. Для JPEG он увеличился с 5,70226 МБ до 1,295 МБ. Для форматов без потерь, таких как PNG, качество переключения намного сложнее.

Изменение размера изображений

Изменение размера изображений — еще один способ. Например:

конвертировать дерево_4624x3468.jpg -изменить размер 50 % х50 % дерево_4624x3468_resize50 % .jpg



Как вы можете ясно видеть, изображение с разрешением 4624×3468 весит 5,70226 МБ, а изображение с разрешением 2312×1734 — всего 1,56287 МБ.

Переключатель определения

За переключателем определения следует ключ и его заданное значение.

-определить ключ{=значение}…

Список возможных значений ключей можно найти по адресу .

Для PNG вы можете использовать png:compression-level=value. Значение может быть любым от 0 до 9. Значение 0 обеспечивает наименьшее сжатие, но быстрое, а значение 9 обеспечивает наилучшее сжатие, но самое медленное. Все, что между ними, также идет.

Например:

конвертировать дерево_4624x3468.png -определять png: уровень сжатия = 9 дерево_4624x3468_compression9.png



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

-определить jpeg:extent={размер}

конвертировать  tree_4624x3468.jpg -определять JPEG: степень =1 МБ tree_4624x3468_extent1MB.jpg



Как вы можете видеть на картинке выше, он установил разрешение 4624×3468 и размер 0,897 МБ. Итак, как вы просили, ImageMagick создал фотографию, размер которой меньше максимального размера 1 МБ.

Полоса переключатель

Фотографии, которые мы делаем с помощью камер, поставляются с метаданными. Удаление метаданных также может освободить место. В ImageMagick мы делаем это с помощью переключателя полосы.

конвертировать дерево_4624x3468.jpg -полоска дерево_полоса.jpg



Здесь, как видите, исходное фото 4624×3468 и 5,7МиБ. Но образ, у которого были удалены метаданные, составляет 4,65 МБ.

Переключатель цветового пространства

Вы также можете попробовать изменить цветовое пространство. В этом первом случае я сделаю его серым.

конвертировать дерево_4624x3468.jpg -цветовое пространство серый tree_gray.jpg -качественный 75



Как видите, уменьшение размера образа не слишком большое, но уменьшение есть — с 5,70226МиБ до 4,44997МиБ.

В качестве альтернативы я также пробовал следующее:

конвертировать дерево_4624x3468.png -цветовое пространство серый tree_graypng.png



В случае PNG моя исходная фотография размером 4624×3468 весит 22,42 МБ, но когда я делаю ее серой, она становится 8,88 МБ.

Переключатель цветов

Вы также можете изменить количество используемых цветов. В данном конкретном случае я буду использовать только 16 цветов в PNG.

конвертировать дерево_4624x3468.png -цвета 16 дерево_4624x3468_16colors.png



Исходный PNG был 4624×3468 и 22,42 МБ. Однако, когда я изменил цвета только на 16, размер изображения стал 4,27 МБ. А фото выглядит так:


дерево_4624x3468_16colors.png

Использование нескольких переключателей

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

Итак, в примере 1 я собираюсь сделать фотографию дерева в формате PNG. Это исходное фото имеет размер 4624×3468 и размер 22,42 МБ, и я собираюсь использовать несколько переключателей и посмотреть, куда это меня приведет.

конвертировать дерево_4624x3468.png -полоска -изменить размер 75 % х75 % -определять png: уровень сжатия = 9 -цветовое пространство серый  tree_4624x3468_reducedsize.png



Итак, этот PNG с исходным размером 22,42 МБ превратился в картинку размером 5,3 МБ. Результирующее изображение составляет около 23% от исходного размера.

Итак, теперь давайте проверим JPG.

конвертировать дерево_4624x3468.jpg -качественный 75 -изменить размер 75 % х75 % -полоска -цвета 16 дерево_4624x3468_reducedsize.jpg



Итак, здесь, для JPG, мы перешли от исходного размера 5,7 МБ к примерно 2,2 МБ для цветного изображения.

Но если бы он не был цветным:

конвертировать дерево_4624x3468.jpg -качественный 75 -изменить размер 75 % х75 % -полоска -цветовое пространство серое дерево_4624x3468_reducedsize.jpg



Здесь мы перешли от исходного размера 5,7 МБ к 1,6 МБ для серого изображения.

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

Вывод

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