Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Сжатие JPG файлов  (Прочитано 2179 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Domitory

  • Автор темы
  • Активист
  • *
  • Сообщений: 565
    • Просмотр профиля
Сжатие JPG файлов
« : 24 Июня 2022, 11:44:25 »
Всем доброго времени суток!

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

Для конвертации JPG файлов находящихся в одном каталоге сейчас использую утилиту convert и следующий скрипт

for file in *.jpg
do
convert -sample 50% -quality 70% "$file" "new/$file"
done

При его использовании нужно с каждым каталогом работать отдельно, что отнимает кучу времени.
Как то можно видоизменить этот скрипт?

Может есть какая-нибудь готовая программа для конвертации изображений так чтобы можно было указать что нужно просканировать содержимое каталога, создать копию этого каталога со всеми подкаталогами и затем перенести туда сжатые файлы?

Оффлайн Ivanivanoff

  • Активист
  • *
  • Сообщений: 319
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #1 : 24 Июня 2022, 11:59:27 »
ожет есть какая-нибудь готовая программа для конвертации изображений
Похожая на Windows ACDSee
XnViewMP
Скачать
wget https://download.xnview.com/XnViewMP-linux-x64.debУстановить
sudo apt install ./XnViewMP-linux-x64.deb -y

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6834
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #2 : 24 Июня 2022, 12:02:32 »
Как изменить. Снаружи еще один цикл, который будет перебирать каталоги.
И самое место этому рукоделию в "user menu" Midnight commander.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6690
  • 20% Cooler
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #3 : 24 Июня 2022, 12:36:35 »
cp -r /old /new
find /new -type f -iname '*.jpg' -exec mogrify -sample 50% -quality 70% {} \;
« Последнее редактирование: 24 Июня 2022, 12:39:55 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Domitory

  • Автор темы
  • Активист
  • *
  • Сообщений: 565
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #4 : 24 Июня 2022, 12:39:56 »
Снаружи еще один цикл, который будет перебирать катал
Ещё бы знать как
mogrify

Это аналог convert?


Пользователь добавил сообщение 24 Июня 2022, 12:41:23:
find /new -type f -iname '*.jpg' -exec mogrify -sample 50% -quality 70% {} \;

Что происходит в этой строке?
Я правильно понимаю что файлы JPG просто перезаписываются новыми отконвертированными?

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6690
  • 20% Cooler
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #5 : 24 Июня 2022, 12:43:03 »
Domitory, тоже, что и convert, только она перезаписывает файл. Входит в пакет imagemagick, так что если у вас есть convert, то и mogrify тоже есть.

Пользователь добавил сообщение 24 Июня 2022, 12:44:18:
Я правильно понимаю что файлы JPG просто перезаписываются новыми отконвертированными?
Да, поэтому мы предварительно скопировали каталог.
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Domitory

  • Автор темы
  • Активист
  • *
  • Сообщений: 565
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #6 : 24 Июня 2022, 12:44:16 »
    mogrify


Это аналог convert?


Сам себе отвечу :)

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

Здорово! похоже то что надо. Вернусь домой обязательно проверю.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6834
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #7 : 24 Июня 2022, 12:55:25 »
Цитировать
исходный файл изображения перезаписывается любыми изменениями, которые вы запрашиваете. Здорово!
Особенно то, что любая конвертация-сжатие-пережатие ухудшит качество изображения. Даже если выставить параметры выше , чем в оригинале.

Оффлайн Domitory

  • Автор темы
  • Активист
  • *
  • Сообщений: 565
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #8 : 24 Июня 2022, 13:16:10 »
Особенно то, что любая конвертация-сжатие-пережатие ухудшит качество изображения

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


Пользователь добавил сообщение 24 Июня 2022, 13:18:30:
cp -r /old /new
find /new -type f -iname '*.jpg' -exec mogrify -sample 50% -quality 70% {} \;

Спасибо за наводку на такую хорошую программу и за готовую команду!
А добавить какую-нибудь пометку в имена файлов как-то можно? чтобы в дальнейшем не перепутать их с исходниками случайно?

Пользователь добавил сообщение 24 Июня 2022, 13:24:33:
Похожая на Windows ACDSee
XnViewMP

спасибо за подсказку. Буду изучать. Я уже и забыл что ACDSee существовал, даже не помню как он выглядит и что в нём делать можно было :) С фотографиями работаю уже лет 15 почти только в Linux.
« Последнее редактирование: 24 Июня 2022, 13:24:33 от Domitory »

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6834
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #9 : 24 Июня 2022, 13:29:31 »
Чем не пометка имя каталога. Назови не "new", a "copy4".

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #10 : 24 Июня 2022, 13:31:26 »
Сам jpg сжать нельзя, он и так сжат. Наоборот, может увеличиться.
Если его распаковать и построить jpg2000, тогда уменьшится.
Пётр.

Оффлайн Domitory

  • Автор темы
  • Активист
  • *
  • Сообщений: 565
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #11 : 24 Июня 2022, 13:35:44 »
Чем не пометка имя каталога. Назови не "new", a "copy4


Да это понятно. И в принципе нормально, так как все равно полно файлов с одинаковыми именами присвовеных фотокамерами. Так что действительно что я заморачиваюсь. Хотя было бы наверное здорово видеть сразу по имени файла откуда он взялся :)

Оффлайн jurganov

  • Старожил
  • *
  • Сообщений: 1402
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #12 : 25 Июня 2022, 13:17:00 »
https://www.linux.org.ru/forum/general/4224097 Пакетное изменение

Пользователь добавил сообщение 25 Июня 2022, 13:17:41:
Сам jpg сжать нельзя, он и так сжат..
как нельзя?? увеличить степень сжатия, размер уменьшится

Оффлайн cargan

  • Активист
  • *
  • Сообщений: 488
  • Oderint, dum metuant
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #13 : 28 Июня 2022, 07:32:18 »
как нельзя?? увеличить степень сжатия, размер уменьшится
это не "сжатие", а изменение конфигурации. Под "сжатием" понимается уменьшение размера файла без изменения конфигурации, т.е без потери информации. Вас же как я понял интересует изменение конфигурации с потерей информации, т.е размер самого рисунка - ширины, высоты и прочего, типа уровня кодирования ...вплоть до максимально плотного, но это увы не "сжатие" в класическом понимании

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6834
    • Просмотр профиля
Re: Сжатие JPG файлов
« Ответ #14 : 28 Июня 2022, 09:13:40 »
В классическом понимании, это тоже не верно.
Есть сжатие без потерь: архиваторы, FLAC. Если разжал, потом снова сжал, даже с другими параметрами сжатия, то ничего не потеряется. "Деградации" информации не произойдет.
Есть сжатие с потерями: все "пеги". Если разжал, то потерянная информация не восстановится. Снова сжал, даже с абсолютно идентичными параметрами, часть информации будет потеряна. Произойдет "деградация" информации.

 

Страница сгенерирована за 0.049 секунд. Запросов: 22.