Wie können mehrere Bild-TIFF-Dateien in JPEG-Dateien konvertiert werden?

20424
Peter Mortensen

Wie können mehrere Bild-TIFF-Dateien stapelweise in JPEG-Dateien konvertiert werden?

Update 1 : convertunter Linux (Teil von ImageMagick ) wie von Miss Cellanie vorgeschlagen und glallen gearbeitet. Es war unkompliziert. Ich habe das ISO-Image der Netbook-Version von Kubuntu 9.1 heruntergeladen, auf eine DVD gebrannt, neu gestartet, ein Befehlszeilenfenster geöffnet, das aktuelle Verzeichnis in das Verzeichnis inter2.tif geändert und Folgendes eingegeben:

 convert -separate inter2.tif new_inter2.jpeg 

Dadurch wurden die drei erwarteten Bilder new_inter2-0.jpeg, new_inter2-1.jpeg und new_inter2-2.jpeg erstellt. Einige Fehlermeldungen wurden angezeigt:

convert: incorrect count for field "DateTime" (21, expecting 20); tag trimmed. `inter2.tif' @ tiff.c/TIFFWarnings/526. convert: inter2.tif: unknown field with tag 317 (0x13d) encountered. `TIFFReadDirectory' @ tiff.c/TIFFWarnings/526. convert: inter2.tif: unknown field with tag 33628 (0x835c) encountered. `TIFFReadDirectory' @ tiff.c/TIFFWarnings/526. 

Ich habe viele mikroskopische Aufnahmen von Zellen . Sie sind im TIFF- Format, eine TIFF-Datei pro Sample / Zellenbild und 3 Kanäle / Bilder in jeder TIFF-Datei (3 verschiedene Lichtwellenlängen).

Die TIFF-Dateien müssen stapelweise in JPEG-Dateien konvertiert werden (ein Eingreifen des Benutzers sollte nicht erforderlich sein), 3 JPEG-Dateien für jede TIFF-Datei (entsprechend den 3 Wellenlängen).

Ich habe versucht, das in LibTIFF enthaltene Befehlszeilentool tiffsplit zu verwenden, um den ersten Schritt auszuführen und die 3 Bilder aus dem ursprünglichen TIFF in 3 neue TIFF-Dateien zu extrahieren. Es stürzt jedoch mit meinen TIFF-Dateien ab (unter Windows XP 64 Bit, DEP aktiviert). Die Fehlermeldung lautet:

Unhandled exception at 0x6fd853d1 in tiffsplit.exe: 0xC0000005: Access violation writing location 0x6fdc8ddb 

Kennen Sie eine andere Lösung? Entweder unter Windows oder Linux.

Hier ist eine TIFF-Beispieldatei (3,8 MB). Zusammengesetztes Bild (einzelne JPEG-Datei, die durch Importieren in MS Paint und Speichern als JPEG erstellt wurde), um Ihnen einen Eindruck davon zu vermitteln, was es ist:

alt text

6
Schön, dass es funktioniert hat! glallen vor 11 Jahren 0
Vielleicht möchten Sie auch die Perl-Bindungen für Imagemagie betrachten. Sie können alles, was imagemagic tun kann, automatisieren und komplette Toolchains erstellen, um IPTC / EXIF-Daten zu konvertieren, zu kommentieren oder zu extrahieren, die Größe zu ändern, die Kanaltrennung usw. zu übernehmen glallen vor 11 Jahren 0

4 Antworten auf die Frage

7
Sathya

IrfanView verfügt über hervorragende Stapelverarbeitungsfähigkeiten.

Irfan View

IrfanView unterstützt auch Befehlszeilenoperationen

i_view32.exe c:\myimages\*.tif /convert=c:\images\*.jpg 

Hier ist der Link zum Befehlszeilenhandbuch

Der Dialog ist ein wenig beschäftigt, aber die Stapelverarbeitung in IrfanView ist leistungsstark und ziemlich schnell. Michael Todd vor 14 Jahren 0
Das scheint ein hervorragender Weg für die Erkundung und für die halbautomatische Konvertierung zu sein. Aber muss ich immer IrfanWiew starten und diesen Dialog aufrufen? Oder kann es mithilfe von Befehlszeilenparametern oder mithilfe von Skripts ausgeführt werden? Peter Mortensen vor 14 Jahren 0
@Peter: IrfanView unterstützt Befehlszeilenparameter Sathya vor 14 Jahren 0
Ich habe IrfanView heruntergeladen und installiert. "/ Extract" funktioniert jedoch nicht wie mit der TIFF-Beispieldatei dokumentiert. Es speichert nur eine JPEG-Datei (ein Composite). Vielleicht kann IrfanView diese Art von TIFF-Datei nicht verarbeiten. Ich habe es mit ImageJ ausprobiert und es kann den Split ausführen (dies ist jedoch von der Benutzeroberfläche aus.) Peter Mortensen vor 14 Jahren 0
4
Miss Cellanie

Versuchen Sie convertoder mogrifyverwenden Sie ImageMagick. Weitere Anweisungen von ubuntuforums.org.

Das sieht vielversprechend aus. Ich werde es versuchen. Peter Mortensen vor 14 Jahren 0
2
glallen

Es gibt wahrscheinlich einen etwas eleganteren Weg, aber das sollte es für Sie tun:

for FILE in $(ls *.tif); do \ for I in R G B; do \ convert -channel $I -separate -format jpg $FILE $FILE-$I.jpg ; \ done ; \ done ; \  rename s/\.tif\-/\-/ *.jpg 
Welche Sprache ist das? Michael Todd vor 14 Jahren 1
Es ist bash shell auf linux. Das "-channel $ I -separate" in der for-Schleife erzeugt für jede RGB-Komponente wie gewünscht separate Dateien. Ich habe Ihr Image heruntergeladen und ausprobiert und dann die for-Schleife hinzugefügt, damit Sie es in einem ganzen Verzeichnis ausführen können. Nachdem Sie den Umbenennungsbefehl ausgeführt haben, erhalten Sie Ihre ursprünglichen inter2.tif und inter2-R.jpg inter2-G.jpg und inter2-B.jpg. glallen vor 14 Jahren 1
@glallen: Danke. Es ist gut zu wissen, dass es tatsächlich mit der Art von Bildern funktioniert, die ich habe. Ich kann mich entscheiden, diese Route zu benutzen. Peter Mortensen vor 14 Jahren 0
1
John T

Neben den hervorragenden separaten Werkzeugen von ImageMagick gibt es auch dieses einfache Befehlszeilentool namens img2img, in dem die ImageMagick-Konvertierungskomponente enthalten ist. Es unterstützt eine Vielzahl von Formaten und kann Eingabeformate automatisch erkennen. Sie können die Batch-Konvertierung so ausführen (stellen Sie sicher, dass Sie dies im Verzeichnis mit allen .tiff-Dateien ausführen):

for /f "delims=." %x in ('dir /b *.tiff') do img2img "%x.tiff" "%x.jpeg" 
Dadurch wird das zusammengesetzte Bild erzeugt. Ich habe versucht, die Option "-deconstruct" zu verwenden, aber img2img scheint keine der Optionen zu erkennen, die aufgelistet werden, wenn sie ohne Parameter ausgeführt werden. Haben Sie einige Beispiele für Aufrufe von img2img mit Optionen / Parametern? Peter Mortensen vor 14 Jahren 0