2016-05-15 19 views
0

Ich verwende Imagemagick identifizieren in einem Python-Skript, um die Abmessungen eines Bildes zu bestimmen. Wenn animierte GIFs analysiert werden, wiederholen sich die Dimensionen immer wieder, z. 500 375500 375500 375500 375500 375500 375500 375500 375.Imagemagick GIF-Dimensionen wiederholen und wiederholen

Warum passiert das? Wie kann ich diese Ausgabe in eine einfache Breite/Höhe aufräumen?

Die Python-Skript, das dieses Ergebnis produziert:

#!/usr/bin/env python 
import subprocess, logging 

# identify -ping -format "%w %h" test.gif 
dimensions = subprocess.check_output([ 
    r'C:\Program Files\ImageMagick-6.9.3-Q16\identify.exe', 
    '-ping', 
    '-format', 
    '%w %h', 
    "../www/content/test.gif" 
]) 

# b string to utf-8 string 
dimensions = dimensions.decode("utf-8") 

logging.warning(dimensions) 

und die Ausgabe im Protokoll ist wie folgt:

WARNING:root:500 375500 375500 375500 375500 375500 375500 375500 375 

Antwort

0

bearbeiten

Der Kommentar zu dieser Antwort richtig ist - Am besten verwenden Sie image.gif[0].

Original-Antwort

Die Dimensionen wiederholt immer wieder, weil die animierte GIF mehrere Frames hat. Ich habe es herausgefunden, als ich bemerkte, dass die Abmessungen jedes Gifs unterschiedlich oft wiederholt wurden.

Ich habe '% w% h' in '% w% h;' und benutzte Split, um den ersten Frame zu isolieren.

dimensions = dimensions.decode("utf-8").split(';') #375 500 
+1

Sie könnten einfach 'image.gif [0]' verwenden, um die Dimensionen des ersten Frames zu identifizieren/isolieren. –