ubuntuusers.de

Bildgröße ermitteln (Problem mit der Ausgabe von identify -format '%w')

Status: Gelöst | Ubuntu-Version: Ubuntu 10.04 (Lucid Lynx)
Antworten |

droebbel Team-Icon

Anmeldungsdatum:
19. Oktober 2004

Beiträge: 5388

Hallo,

ich brauche innerhalb eines Bashscripts die Dimensionen (Breite und Höhe getrennt) eines Bildes. Das funktioniert grundsätzlich ganz gut mittels

identify -format '%w'

Manchmal bekomme ich aber eine "doppelte" Ausgabe: beispielsweise statt 1024 fälschlich 10241024. In diesem Fall ist die komplette Ausgabe von identify beispielsweise

testBS.tif[0] TIFF 1024x1019 1024x1019+0+0 8-bit DirectClass 7.969MiB 0.000u 0:00.010

Es sind also zwei Angaben vorhanden, und identify kombiniert sie 🙄

Die komplette "Geometrie" ist dann laut identify

$ identify -format '%g' testBS.tif
1024x1019+0+01024x1019+0+0

Da könnte man doch sicherlich manuell die gewünschten Werte ausschneiden. Leider bin ich mit den Werkzeugen (awk?) wenig vertraut und konnte bislang auch nichts passendes ergoogeln. Hat ein Könner einen Tip für mich?

Gruß David

domachine

Anmeldungsdatum:
16. Mai 2007

Beiträge: 562

Mensch jetzt hast Du genau den Beitrag gelöscht auf den ich schon geantwortet habe 😀

Hier meine Antwort:

1
2
identify -format '%g' testBS.tif|\
sed -r 's/^([0-9]+x[0-9]+\+[0-9]\+[0-9]).*$/\1/'

Ich weiß jetzt natürlich nicht in wie weit sich die Bildinformationen ändern können. Aber der Regex sollte eigentlich relativ allgemein passen. Er passt auch wenn es nicht um eine Doppeltinfo handelt. Du kannst ihn also getrost über alle Resultate laufen lassen.

Gruß Domi

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Das hier

identify -format "%wx%h" bild.jpg

tut es auch.

Für die Format Strings siehe hier: http://www.imagemagick.org/script/escape.php

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

droebbel schrieb:

testBS.tif[0] TIFF 1024x1019 1024x1019+0+0 8-bit DirectClass 7.969MiB 0.000u 0:00.010

Du hast offenbar mehrere Frames in deiner Datei. identify wirft dir für jedes davon die Informationen anhand deines Formats raus und das enthält kein Trennzeichen, also wird’s aneinander geklatscht.

Also, entweder trenne deine Informationen:

identify -format '%w\n' bla.tif

Oder wähle ein spezifisches Bild aus:

identify -format '%w' bla.tif'[0]'

droebbel Team-Icon

(Themenstarter)

Anmeldungsdatum:
19. Oktober 2004

Beiträge: 5388

Vielen Dank!

Die Methode zur Auswahl eines bestimmten Frames hilft mir weiter.

Nochmals herzlichen Dank,

Gruß David

Antworten |