2016-07-12 10 views
1

Ich verwende Imagemagick zur Bildverbesserung in meinem Projekt. Da ich ein Neuling von ImageMagick bin, habe ich es mit dem Kommandozeilenargument für dieses Paket gestartet. Für die weitere Verarbeitung muss ich den folgenden Befehl in Python-Code ändern.So ändern Sie den Konvertierungsbefehl in Python-Code

convert sample.jpg -blur 2x1 -sharpen 0x3 -sharpen 0x3 -quality 100 -morphology erode diamond -auto-orient -enhance -contrast -contrast-stretch 0 -gamma .45455 -unsharp 0.25x0.25+8+0.065 -fuzz 2% output.jpg 

Ich denke, es ist möglich, mit Wand-Paket. Aber ist es möglich, alle Argumente, die im obigen Befehl verwendet werden, zu konvertieren? Jede Hilfe wird sehr geschätzt. Danke

+0

Versuchen Sie es hier: http://stackoverflow.com/questions/4813238/difference-between-subprocess-popen-and-os-system. os.system wird im Allgemeinen weniger als eine gute Idee im Vergleich zu popen –

+0

Eigentlich könnte ich nicht mit diesen Optionen (os.system und popen) fortfahren, da ich das Bild hochladen muss dynamisch konvertiert werden. Gibt es noch andere Optionen? –

Antwort

1

Sie können os.system() verwenden, um Terminalkommandos von Python auszuführen.

import os 

command = 'convert sample.jpg -blur 2x1 -sharpen 0x3 -sharpen 0x3 -quality 100 -morphology erode diamond -auto-orient -enhance -contrast -contrast-stretch 0 -gamma .45455 -unsharp 0.25x0.25+8+0.065 -fuzz 2% output.jpg' 

os.system(command) 

Wenn Sie die Pfade dynamisch verwenden möchten, können Sie auch die .format() Methode verwenden:

infile = 'sample.jpg' 
outfile = 'output.jpg' 

command = 'convert {} -blur 2x1 -sharpen 0x3 -sharpen 0x3 -quality 100 -morphology erode diamond -auto-orient -enhance -contrast -contrast-stretch 0 -gamma .45455 -unsharp 0.25x0.25+8+0.065 -fuzz 2% {}'.format(infile, outfile) 

os.system(command) 
+0

Danke für Ihre Antwort. Wie können wir den Dateipfad angeben? In meinem Fall wird die zu konvertierende Datei dynamisch hochgeladen. –

+0

@VijeshVenugopal getan. –

+0

Das macht Sinn. Vielen Dank –

0

Eine weitere Option ist Wand, ein ImageMagick für Python-Bindung den Befehl oben erwähnt zu konvertieren. Bitte lesen Sie den folgenden Link für weitere Informationen:

wand docs

Verwandte Themen