LINUX.ORG.RU

Как заменить все файлы картинок в разных папках на болванки ?

 


0

1

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

А нельзя ли заменить оригинальные изображения .jpg, .png и т.д. файлами в аналогичных форматах но содержащих только белый фон ?

Картинка только c белым или прозрачным фоном может занимать в 10 раз меньше места чем картинка с оригинальным изображением

А как автоматически можно заменить все картинки на такие болванки с белым фоном ?

Вот спросил и думаю. А ведь оказывается чего-то еще не придумали

Существуют ли такие инструменты ? Тут еще момент в том, что размер болванки по высоте и ширине должен соответствовать заменяемой картинке

★★

Последнее исправление: mirek (всего исправлений: 2)

Bash, ImageMagick, по вкусу GNU Parallel.

Либо Python, либо любимый убогоњкий недоязычок.

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

token_polyak ★★★★★
()
Ответ на: комментарий от token_polyak

Или баш, или гуйные заморочки любимого батч-конвертера

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

mirek ★★
() автор топика
Ответ на: комментарий от goingUp

ЧатГПТ

Я вот кстати разрабатываю ИИ ) Но у меня не говорящий. Он не коммуницирует с людьми

Но в данном случае речь идет об очень простой проге. Уровня школьника

mirek ★★
() автор топика
Последнее исправление: mirek (всего исправлений: 1)
Ответ на: комментарий от mirek

На питоне это пишется примерно за столько времени что прошло с момента написания темы до комментария на который я сейчас отвечаю. Если протестировать, то ещё 5 минут накинуть надо.

peregrine ★★★★★
()
Ответ на: комментарий от mirek

При том оно обрабатывает многие форматы. Но вот например пропустило каталог МЫЛО кирилицей. Там были конские файлы

А также попустило каталоги с длинными названиями хотя и по английски. Но они с пробелами

То есть решение все таки на трояк)

mirek ★★
() автор топика
Ответ на: комментарий от mirek

Ну кавычки же можно добавить в вывод awk:

find path/to/dir -type f -exec file --mime-type {} \+ |\
awk -F: '{if ($2 ~/image\//) print "\x27"$1"\x27"}' | xargs -L 1 mogrify -evaluate set 100%
lnx
()
Последнее исправление: lnx (всего исправлений: 1)
Ответ на: комментарий от lnx

Если в именах файлов будут одинарные кавычки - не сработает. Тогда можно заменить символ одинарный кавычек \x27 на двойные \x22, но тогда не обработает имена файлов с двойными кавычками.
Решение не без изъянов. Как говорится, из «быстро, качественно, недорого» можно выбрать только два пункта.

lnx
()
Ответ на: комментарий от lnx

«быстро, качественно, недорого» можно выбрать только два пункта

Угу. Оно также пытается конвертировать шрифты. И в общем еще надо пропускать картинки размером до 20к. Иначе оно разные стрелочки, линии также сделает белыми

Ну и нет смысла уменьшать картинки размером менее 20к

mirek ★★
() автор топика
Ответ на: комментарий от mirek

Оно также пытается конвертировать шрифты.

Оно конвертирует всё, что утилита file распознаёт, как image.

И в общем еще надо пропускать картинки размером до 20к. Иначе оно разные стрелочки, линии также сделает белыми Ну и нет смысла уменьшать картинки размером менее 20к

Ну классика - хотелки заказчика растут, ТЗ корректируется.
Всё решаемо - одно из возможных направлений я указал.

lnx
()
Ответ на: комментарий от mirek

Решение не идеально, но зато «за три копейки». К идеалу можно приблизиться, если не полениться и подкрутить под себя. в том же find можно задать много параметров - размер, паттерн названия/разрешения и т.д.

lnx
()