2013-11-07 2 views
1

Мне нужно обрезать кучу jpegs на 20 пикселей с правой стороны без потерь. Знаете ли вы о любом программном обеспечении, которое может это сделать? Я проверил jpegtran, но перед обрезкой ему нужен размер файла в пикселях, и я не знаю, как это сделать с командным файлом. Есть идеи?Lossless jpeg batch crop

+0

Что OS вы ищете решение о? –

+0

Если вы довольны jpegtran и вам нужны пиксели, вы можете получить это с помощью ImageMagick. вы также можете автоматизировать его для партии с некоторыми командами оболочки. – acfrancis

+0

Linux или Windows. Таким образом, вопрос, возможно, будет больше похож: как это сделать в оболочке Linux или Windows. Я посмотрю на ImageMagick. – user2708058

ответ

2

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

#!/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 представляет собой команду ImageMagick
  • awk будет захватывать размеры пикселей из identify использовать в качестве параметра (с шириной, уменьшенной на 20 пикселей) для jpegtran, чтобы обрезать изображение
  • Новое изображение сохраняется как new_[old_name].jpg
  • jpegtran может настроить область обрезки так, чтобы она могла работать без потерь. Убедитесь, что результирующие изображения имеют правильный размер и не немного больше.
+0

Очень интересный инструмент! – Havenard

+0

Это похоже на то, что мне нужно! Я отправлю отчет, как только проверю его. Спасибо! – user2708058

+0

У меня не было возможности проверить его, поэтому я не удивлюсь, если ему понадобится настройка или два. – acfrancis

 Смежные вопросы

  • Нет связанных вопросов^_^