Меню сайта
① Главная
② Обо мне
③ Статьи
④ Дневник
⑤ Картинки
⑥ Файлы
⑦ Форум
⑧ Гостевая книга

Категории раздела
Куклы и игрушки [55]
Личное [104]
Музыка [18]
Общее [233]
Японский язык [12]
ZX Spectrum [24]
Субмарины [90]
Настольные игры [32]
Го (碁) [10]
Книги [8]
Япония [26]
Таро [4]
Запертый шкаф [16]
CSA (КША) [13]
GNU/Linux [25]
Ubuntu [102]
Manjaro Linux [14]

Мои интересы

Помощь сайту
Если сайт Вам понравился, поддержите на развитие!

Подробнее...


 
Дневник (2016 » Июнь » 23 в 02:20)
Ubuntu ImageMagick

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

Хотя к ImageMagick имеется не только полная документация, но и решебник типовых задач, а для тех, кому shell-скрипты читать проще английского, — библиотека сценариев на shell, моё обсуждение конвертации jpg на форуме unixforum.org заняло несколько дней... Всё началось с того, что я прочитал на хабре статью "Эффективное изменение размера картинок при помощи ImageMagick".

Для начала, как используя ImageMagick можно вывести размеры картинки:
identify -ping -format '%w %h' image.jpg
Все файлы были в разнобойных именах, и с расширениями в разном регистре, что в линуксе критично. Переименовать все файлы IMAGE.JPG в image.jpg можно так:
prename 'y/A-Z/a-z/' *

Этого мне показалось мало, я хотел привести имена файлов к какому-либо общему знаменателю:

for file in *.jpg; do mv -bv "$file" "news-$(date -r "$file" +%Y%m%d-%H%M%S).jpg" ; done

Более оптимальный вариант переименования:

declare -A tmu=(); for file in *.jpg; do ((tmu[$(date -r "$file" +%Y%m%d-%H%M%S)]++)); done; declare -A idx=(); for file in *.jpg; do name=$(date -r "$file" +%Y%m%d-%H%M%S); if ((tmu[$name]!=1)); then ((idx[$name]++)); name=$(printf %s-%03d $name ${idx[$name]}); fi; mv -- "$file" "news-$name.jpg"; done


На выходе получаются файлы с датами в именах. Решение подсказали на форуме.

Хотя я замудохался возиться с утилитой в поисках лучшего результата, чем в GwenView на Ubuntu, или в ACDSee 5.0 в Win7, в итоге я ограничился этой конструкцией:


time mogrify -path resized -filter Triangle -define filter:support=2 -thumbnail "1300x1300>" -dither None -quality 75 -define jpeg:fancy-upsampling=off -interlace None *.jpg

time - выводит затраченное на процесс время.

-filter Triangle билинейная интерполяция
-define filter:support=2 задать область соседних пикселей
-thumbnail 1400 размер картинки
-unsharp 0.25x0.08+8.3+0.045 этот фильтр увеличивает чёткость картинки, можно пренебречь.

-dither None Дизеринг (Dithering) – процесс, который смягчает последствия уменьшения количества цветов, добавляя шума в цветовые наборы, чтобы создать иллюзию большего количества цветов.

-posterize 136
Постеризация (posterization), когда градиенты заменяются на наборы из чётких цветов. Постеризация уменьшает количество уровней цвета. Сильно грузит процесс, с большими файлами может почти повесить ПК!

-quality 82 настройка качества jpg. В итоге я понизил до 75
-define jpeg:fancy-upsampling=off Эту настройку convert игнорирует, использовать mogrify! On - улучшает качество, но увеличивает вес.

-interlace none Прорисовывать последовательно, не прогрессивно!
-colorspace sRGB Даст неправильную цветопередачу если у нас в оригинале CMYK.


Настройки для PNG:

-define png:compression-filter=5
Фильтр сжатия, так сортирует данные, что сжатие становится
более эффективным.
-define png:compression-level=9 Максимальный уровень сжатия.
-define png:compression-strategy=1 Стратегия алгоритма
-define png:exclude-chunk=all Удалить мета данные



Полезные ссылки:

Описание командной строки:
https://www.imagemagick.org/script/command-line-processing.phpgeometry

Обработка изображений с помощью ImageMagick
http://ru-php.livejournal.com/1424646.html

Описание ключей с примерами
http://mydebianblog.blogspot.ru/2007/07/imagemagick.html

Справка на help.ubuntu.ru
http://help.ubuntu.ru/wiki/imagemagick
http://help.ubuntu.ru/wiki/convert


ImageMagick resize. Обрабатывать только большие картинки
http://fstrange.ru/coder/about_all/imagemagick-resize-only-if-larger.html
http://www.imagemagick.org/Usage/resize/


Категория: Ubuntu | Просмотров: 111 | Добавил: harushima | Рейтинг: 0.0/0 |
Всего комментариев: 2.

23.06.2016 20:26
1 harushima
0  
Уязвима для атаки:
https://www.linux.org.ru/news/security/12568849
Сайт уязвимостей: https://imagetragick.com/


13.12.2016 02:55
2 harushima
0  
Авторотация упавших на бок изображений
jhead -autorot *.jpg

В целях защиты от спама, добавлять комментарии могут только зарегистрированные пользователи. Если Вы не хотите регистрироваться под своим именем, войдите под логином: anonymous, паролем: anonymous.   ( Регистрация,   Вход).
Авторизация
Анонимный вход:
anonymous / anonymous
Логин:
Пароль:

Календарь
«  Июнь 2016  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
27282930

Поиск

Облако тэгов
JGSDF игрушки брюнетки кладбище сайты Ярость Дракулы древний египет девушки кошки cthulhu вампиры Kitsune Ужас Аркхема Инструмент комиксы Lovecraft Готика Submarine submarine rc toy hosting Игротека Ужас Аркхэма book uboat мобильная связь ГО Edgar Poe SWF Mansions of Madness Nightmares персоны linux-hardware

Статистика
Яндекс.Метрика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Page QR code


Перепечатка материалов сайта без активной ссылки запрещена. Следить за RSS
(c) hermitlair.ucoz.com 2009-2017
Лучший браузер!
Блокировка рекламы