Мне нужно обрезать кучу jpegs на 20 пикселей с правой стороны без потерь. Знаете ли вы о любом программном обеспечении, которое может это сделать? Я проверил jpegtran, но перед обрезкой ему нужен размер файла в пикселях, и я не знаю, как это сделать с командным файлом. Есть идеи?Lossless jpeg batch crop
ответ
Мои скриптовые скрипты немного ржавые, поэтому, пожалуйста, сделайте резервную копию своих изображений перед тем, как попробовать этот скрипт.
#!/bin/bash
FILES=/path/to/*.jpg
for f in $FILES
do
identify $f | awk '{ split($3, f, "x"); f[1] -= 20; cl = sprintf("jpegtran -crop %dx%d+0+0 %s > new_%s", f[1], f[2], $1, $1); system(cl); }'
done
Очки отметить:
- Настройте путь к правильному значению
- Вам нужна * .jpeg?
identify
представляет собой команду ImageMagickawk
будет захватывать размеры пикселей изidentify
использовать в качестве параметра (с шириной, уменьшенной на 20 пикселей) дляjpegtran
, чтобы обрезать изображение- Новое изображение сохраняется как
new_[old_name].jpg
jpegtran
может настроить область обрезки так, чтобы она могла работать без потерь. Убедитесь, что результирующие изображения имеют правильный размер и не немного больше.
Очень интересный инструмент! – Havenard
Это похоже на то, что мне нужно! Я отправлю отчет, как только проверю его. Спасибо! – user2708058
У меня не было возможности проверить его, поэтому я не удивлюсь, если ему понадобится настройка или два. – acfrancis
BatchCrop может это сделать. Он поддерживает как Windows, так и Mac.
Что OS вы ищете решение о? –
Если вы довольны jpegtran и вам нужны пиксели, вы можете получить это с помощью ImageMagick. вы также можете автоматизировать его для партии с некоторыми командами оболочки. – acfrancis
Linux или Windows. Таким образом, вопрос, возможно, будет больше похож: как это сделать в оболочке Linux или Windows. Я посмотрю на ImageMagick. – user2708058