Пакетная обработка изображений tif? Преобразование .tif в .jpeg


43

Я пытаюсь массово конвертировать несколько .tifфайлов. Я обнаружил, что phatch может выглядеть как хороший кандидат, но я использую Ubuntu 11.04. Похоже, они не имеют .debдля моей версии.

У любого есть альтернативы phatch или любые другие рекомендации, как быстро конвертировать файлы tifв jpegфайлы.

Я ищу решение не для Photoshop (аля Wine).

Ответы:


77

Легко. Установите imagemagick :

sudo apt-get install imagemagick

Это самое простое использование:

convert File.tif File.jpg

Это умный и идет по вашему расширению файла.

Теперь для выполнения пакетных преобразований мы будем использовать цикл.

Перейдите в каталог, где находятся ваши TIF-файлы.

тогда:

for f in *.tif; do  echo "Converting $f"; convert "$f"  "$(basename "$f" .tif).jpg"; done

Читайте также как:

for f in *.tif
do  
    echo "Converting $f" 
    convert "$f"  "$(basename "$f" .tif).jpg" 
done

Это должно сделать это!

Кроме того, как только вы конвертируете все файлы и проверяете целостность нового jpg, просто запустите rm *.tifв этом каталоге, чтобы удалить все ваши старые файлы .tif. Будьте осторожны со звездочками, не ставьте пробел после *или вы удалите все файлы в каталоге.

Совет: если у вас есть папка с подпапками, в которой хранятся эти изображения. Вы можете использовать это для цикла, чтобы найти все файлы .TIF в этой папке:

for f in $(find -name *.tif); do ...; done

Это должно печатать Converting filename.tifили Converting filename?
нитрат натрия

1
@sodiumnitrate будет говорить «Преобразование имени файла.tif». basenameкоманда принимает 2 аргумента, например , basename file.tif .tifвозвращает «файл» Зачистка .tif расширение прочь. Если хотите, вы можете изменить цикл на «преобразование filename.tif в filename.jpg» с помощью той же команды basename.
Мэтт

findПервый аргумент должен быть путем, так что последняя строка должна быть for f in $(find . -name *.tif); do ...; done(так как мы cdредактировали в каталоге раньше). Я попытался отредактировать ответ @ Matt, но редактирование должно быть не менее 6 символов по какой-то причине.
mrtnmgs

Спасибо ..................................... работает
баладжи

22

Я нашел этот вопрос, пытаясь сделать это сам, для дальнейшего использования, вы также можете сделать это так:

convert *.tiff -set filename: "%t" %[filename:].jpg

или положить его в подкаталог

mkdir jpg
convert *.tiff -set filename: "%t" jpg/%[filename:].jpg

1
Yay для встроенной обработки имени файла.
beerbajay

Это отлично сработало для меня и с png файлами. Однако поведение pdf было другим.
wdkrnls

Я хотел бы, чтобы это работало, однако, это сообщило об ошибке шины на ImageMagick 6.6.9-7 2014-03-06 Q16 (OpenMP) на Ubuntu 64. Принятый ответ работает отлично.
TFuto

Слово предупреждения: это заморозило для меня всю систему (GNOME 3), и мне пришлось жестко выключить компьютер
0__

2

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

Частично это конвертировать -

человек новообращенный:

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


1
Ответ Мэтта на самом деле путь более полезным
Марто

1
Ага. Вы здесь
chrisjlee

1

Если вы предпочитаете приложение с графическим интерфейсом, вы можете установить Phatch через обычные репозитории. Просто откройте Ubuntu Software Center и найдите его. Я больше не на 11.04, но тогда я его установил.


1

Ответы выше используют *.tifдля выбора tif, но это вернет ошибку, если у вас слишком много файлов в вашем текущем рабочем каталоге. Простой обходной путь - использовать скрипт Python для преобразования каждого файла в cwd:

import glob, os

for c, i in enumerate(glob.glob('ecco_images/*')):
  print(' * converting', i)
  os.system('convert ' + i + ' ' + i.replace('.TIF','.jpg'))

for f in *.tifне ошибка, но convert *.tifбудет.
17

Ах, спасибо @muru! Я думал, что расширение * будет таким же на уровне ОС, но я рад, что его исправили.
Духайме

0

Я хотел бы добавить к ответу @ Matt, что если вы хотите, чтобы файлы были сохранены в подпапках, вы можете сделать следующее:

find -name *.tif | while read f; do echo "Converting $f"; convert "$f"  "${f%.*}".jpg; done

Это также решает проблему, если в вашем пути к файлу / имени есть пробелы


0

Решение GIMP GUI с использованием плагина пакетного процесса

Работает в Ubuntu 18.04 с использованием GIMP 2.8


Диалоговое окно ввода пакетного процессора

Диалоговое окно ввода пакетного процесса


Диалоговое окно вывода пакетного процессора

Диалоговое окно вывода пакетного процессора


Инструкция по установке

1 - Загрузите текущий файл плагина с DBP - домашней страницы David Batch Processor на рабочий стол. Для Ubuntu 18.04, рушившего Gimp 2.8, файл, который работал для меня, был dbpSrc-1-1-9.tgz .

2 - Возьмите несколько файлов для разработки GIMP:

sudo apt-get install libgimp2.0-dev gcc cpp g++

3 - Перейдите в системный каталог исходного кода:

cd /usr/src/

4 - Извлеките плагин из вашего рабочего стола в его собственную директорию исходного кода. Замените [username] вашим текущим именем пользователя и используйте имя файла, которое вы скачали выше в шаге 1:

sudo tar -xvzf /home/[username]/Desktop/dbpSrc-1-1-9.tgz

5 - Перейдите в каталог исходного кода плагина:

cd dbp-1.1.9

6 - Скомпилируйте плагин:

sudo make

7 - Установите плагин:

sudo make install

8 - Запустите GIMP, и вы найдете плагин в Меню-> Фильтры-> Пакетная обработка.

Пакетный процесс GIMP. Путь по меню

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.