ImageMagick: как использовать только сжатие больших изображений (флаг '›') как в Windows, так и в Unix

Я нашел это описание на веб-сайте http://www.imagemagick.org/Usage/resize/#shrink. :

Уменьшать только большие изображения (флажок '>') Еще один часто используемый параметр — ограничить мгновенные сообщения, чтобы они сжимали только изображения до заданного размера. Никогда не увеличивайте. Это опция изменения размера '>'.

Example:

convert dragon.gif    -resize 64x64\>  shrink_dragon.gif

Единственный флаг сокращения (флаг '>') — это специальный символ в пакетных сценариях Windows, и вам нужно будет экранировать этот символ, используя '^>', иначе он не будет работать.

Насколько я понимаю, этот флаг ('>') может работать только в Windows ^> или unix /> . Есть ли способ создать команду, которая будет работать как в Windows, так и в Unix?

Я использую imagemagick с php, поэтому у меня есть unix на производственном веб-сервере, но окна на локальном хосте.

Спасибо.


person pupadupa    schedule 31.07.2011    source источник
comment
я много лет назад работал с ним и помню, что в итоге у меня был переключатель if (win) else из-за одиночных кавычек и косой черты или обратной косой черты.   -  person Kaken Bok    schedule 31.07.2011


Ответы (1)


Если вы вызываете ImageMagick из скрипта, вероятно, есть встроенная функция для экранирования аргументов оболочки. В Python это pipe.quote. В PHP это escape_shell_arg();

person Janus Troelsen    schedule 31.07.2011
comment
К сожалению, это не решает эту проблему... потому что мне нужно изменить аргументы оболочки, зависит от операционной системы, в которой работает мой код. - person pupadupa; 26.08.2011