Przetwarzanie wsadowe obrazów tif? Konwertowanie .tif na .jpeg


41

Próbuję masowo przekonwertować garść .tifplików. Odkryłem, że phatch może wyglądać na dobrą kandydaturę, ale używam Ubuntu 11.04. Wygląda na to, że nie mają .debmojej wersji.

Każdy ma jakieś alternatywy dla phatch lub inne zalecenia, jak szybko wsadowo przekonwertować tifna jpegpliki.

Szukam rozwiązania innego niż Photoshop (ala Wine).

Odpowiedzi:


75

Łatwo. Zainstaluj imagemagick :

sudo apt-get install imagemagick

Najprostsze użycie to:

convert File.tif File.jpg

Jest inteligentny i ma rozszerzenie pliku.

Teraz do wykonywania konwersji wsadowych użyjemy pętli.

cd do katalogu, w którym znajdują się twoje pliki tif.

następnie:

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

Czytaj także jako:

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

Że należy to zrobić!

Ponadto, po przekonwertowaniu wszystkich plików i sprawdzeniu integralności nowego pliku jpg, wystarczy uruchomić rm *.tifw tym katalogu, aby usunąć wszystkie stare pliki .tif. Uważaj jednak na gwiazdki, nie dodawaj spacji po *, inaczej usuniesz wszystkie pliki z katalogu.

Wskazówka: jeśli masz folder z podfolderami, w którym znajdują się te obrazy. Możesz użyć tego do pętli, aby znaleźć wszystkie pliki .TIF w tym folderze:

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

Czy to ma wydrukować Converting filename.tifczy Converting filename?
azotan sodu

1
@ azotan sodu powie „Converting filename.tif”. basenamekomenda trwa 2 argumenty, na przykład basename file.tif .tifpowróci „plik” odpędzania rozszerzenie .tif dalej. Możesz zmodyfikować pętlę, aby powiedzieć „Konwertowanie pliku.tif na nazwę pliku.jpg” za pomocą tej samej komendy basename, jeśli chcesz.
Matt

findpierwszy argument powinien być ścieżką, więc ostatnia linia powinna być for f in $(find . -name *.tif); do ...; done(ponieważ wcześniej cdedytowaliśmy w katalogu). Próbowałem edytować odpowiedź @ Matta, ale z jakiegoś powodu zmiany muszą mieć co najmniej 6 znaków.
mrtnmgs

Dziękuję ..................................... praca
balaji

22

Znalazłem to pytanie, próbując zrobić to sam, do wglądu w przyszłości możesz również zrobić to w ten sposób:

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

lub umieścić go w podkatalogu

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

1
Tak, wbudowana obsługa nazw plików.
beerbajay

Działa to również dla mnie świetnie z plikami png. Jednak zachowanie plików pdf było inne.
wdkrnls

Chciałbym, aby to działało, jednak zgłosił błąd magistrali na ImageMagick 6.6.9-7 2014-03-06 Q16 (OpenMP) na Ubuntu 64. Przyjęta odpowiedź działa dobrze.
TFuto

Słowo ostrzeżenia: To zamroziło dla mnie cały system (GNOME 3) i musiałem mocno wyłączyć komputer
0__

2

Imagemagick powinien móc je przekonwertować. Jest to pakiet programów wiersza polecenia, jeśli nie masz nic przeciwko.

Częścią tego jest konwersja -

konwersja człowieka:

konwersja - konwersja między formatami obrazu, a także zmiana rozmiaru obrazu, rozmycie, kadrowanie, usuwanie, dithering, rysowanie, odwracanie, łączenie, ponowne próbkowanie i wiele więcej.


1
Odpowiedź Matta jest o wiele bardziej przydatna
marto

1
Tak. Jesteś tam
chrisjlee

1

Jeśli wolisz aplikację GUI, możesz zainstalować Phatch za pośrednictwem zwykłych repozytoriów. Wystarczy otworzyć Centrum oprogramowania Ubuntu i wyszukać. Nie jestem już 11.04, ale wtedy go zainstalowałem.


1

Powyższe odpowiedzi służą *.tifdo wyboru tif, ale zwróci błąd, jeśli masz zbyt wiele plików w bieżącym katalogu roboczym. Prostym obejściem jest użycie skryptu Pythona do konwersji każdego pliku w pliku 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 *.tifnie popełni błędu, ale convert *.tifbędzie.
muru

Ach, dzięki @muru! Myślałem, że * rozszerzenie będzie takie samo na poziomie systemu operacyjnego, ale cieszę się, że mogę je poprawić.
duhaime

0

Chciałbym dodać do odpowiedzi @ Matta, że ​​jeśli chcesz, aby pliki były zapisywane w podfolderach, możesz wykonać następujące czynności:

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

To rozwiązuje również problem, jeśli ścieżka / nazwa pliku zawiera spacje


0

Rozwiązanie GIMP GUI przy użyciu wtyczki Batch Process

Działa w Ubuntu 18.04 przy użyciu GIMP 2.8


Okno dialogowe wprowadzania danych procesora wsadowego

Okno dialogowe wprowadzania danych wsadowych


Okno dialogowe Wyjście procesora wsadowego

Okno dialogowe Wyjście procesora wsadowego


Instrukcje Instalacji

1 - Pobierz aktualny plik wtyczki z DBP - strony głównej David's Batch Processor na swój pulpit. W przypadku Ubuntu 18.04, który zrujnował Gimp 2.8, działał dla mnie plik dbpSrc-1-1-9.tgz .

2 - Pobierz niektóre pliki programistyczne GIMP:

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

3 - Przejdź do katalogu kodu źródłowego systemu:

cd /usr/src/

4 - Wyodrębnij wtyczkę z pulpitu do własnego katalogu kodu źródłowego. Zastąp [nazwa użytkownika] bieżącą nazwą użytkownika i użyj nazwy pliku pobranej powyżej w kroku 1:

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

5 - Przejdź do katalogu kodu źródłowego wtyczki:

cd dbp-1.1.9

6 - Skompiluj wtyczkę:

sudo make

7 - Zainstaluj wtyczkę:

sudo make install

8 - Uruchom GIMP, a wtyczkę znajdziesz w Menu-> Filtry-> Proces wsadowy.

Proces wsadowy GIMP. Ścieżka menu

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.