2010-02-12 3 views
1

У меня возникли проблемы в моем питон скрипт, и я не понимаю:Использование subprocess.call, чтобы обрезать изображение

subprocess.call(['convert', file, '-crop', '80x10+90+980', '+repage', 'test.jpg']) 

возвращает «недопустимый аргумент - -crop»

Но если я запускаю это из командной строки, он отлично работает:

convert test.jpg -crop 80x10+90+980 +repage test.jpg 

Что мне здесь не хватает?

ответ

2

Есть ли более одного convert в системе? Попробуйте абсолютный путь к команде, которую вы хотите?

+0

@MattH: согласовано! – bhups

1

Как насчет использования python image library instead? Это кажется гораздо более надежным, чем вызов подпроцесса (особенно для обработки ошибок ...).

+0

Ну, я хочу использовать урожай и сравнить .. делает ли PIL это? – Manu

+0

Я не знаю, что вы подразумеваете под «сравнением», но PIL, безусловно, способен обрезать изображения. –

1

file - класс _____builtin_____. Переопределение может привести к нежелательным результатам. Попробуйте использовать другое имя переменной.

+0

Я изменил его на «fichier» (французский файл), но проблема остается. Спасибо за отзыв в любом случае. – Manu

1

Я фактически попробовал ваш код:

>>> import subprocess 
>>> subprocess.call(['convert', 'capa.jpg', '-crop', '80x10+90+980', '+repage', 'capa2.jpg']) 
0 
>>> 

И это работает для меня!

Итак, у вас должно быть что-то не так, в другом месте. Проверьте наши предположения снова.

Смежные вопросы