As macros de comando fornecem atalhos nomeados para conjuntos de comandos.
$ *name*$
name Nome da macro
As macros são definidas em arquivos separados de definição de macro, que podem ser anexados a catálogos de materiais ou ao catálogo padrão.
name não diferencia maiúsculas de minúsculas e pode consistir de qualquer combinação de letras ASCII, números , '-', '_' e '.' caracteres.
Chame macros em qualquer lugar em uma solicitação após o '?' ou em qualquer lugar dentro de uma vignette::Modifier
campo. As macros só podem representar um ou mais comandos de Renderização de Imagem e devem ser separadas de outros comandos com separadores '&'.
As invocações de macro são substituídas por suas sequências de substituição precocemente durante a análise. Os comandos em macros substituem os mesmos comandos na solicitação se ocorrerem antes da chamada de macro na solicitação. Esse workflow é diferente de vignette::Modifier
, em que os comandos na cadeia de caracteres de solicitação substituem os comandos no vignette::Modifier
, independentemente da posição na solicitação.
As macros de comando não podem ter valores de argumento, mas variáveis personalizadas podem ser usadas para transmitir valores da solicitação para a macro.
As macros podem não estar aninhadas.
Exemplo
As macros podem ser úteis se os mesmos comandos ou atributos forem aplicados a imagens renderizadas diferentes.
http://server/ir/render/cat/vig0?fmt=jpeg&qlt=80&sharpen=1&src=cat/matA&res=40 http://server/ir/render/cat/vig1?fmt=jpeg&qlt=80&sharpen=1&src=cat/matB&res=40 http://server/ir/render/cat/vig2?fmt=jpeg&qlt=95&sharpen=1&src=cat/matC&res=40
Você pode definir uma macro para os atributos comuns:
render vignette=cat/$vig$&fmt=jpg&qlt=80&sharpen=1&src=cat/$mat$&res=40
A macro seria usada da seguinte maneira:
http://server/ir/render/cat/vig0?$mat=matc&$render$ http://server/ir/render/cat/vig0?$mat=matc&$render$ http://server/ir/render/cat/vig0?$mat=matc&$render$&qlt=95
Porque qlt=
for diferente para a terceira solicitação, o software substituirá o valor depois que a macro for chamada (especificando qlt=
before $render$
é ineficaz).
Consulte também
catalog::MacroFile
, catalog::Modifier
, Referência de definição de macro