Recursos (arquivos de configuração e variáveis de ambiente)
Arquivos de configuração • Módulos • Fontes • Variáveis de ambiente
O ImageMagick depende de vários recursos externos, incluindo arquivos de configuração, módulos carregáveis, fontes e variáveis de ambiente.
Arquivos de configuração
O ImageMagick depende de vários arquivos de configuração externos detalhados aqui:
- coder.xml
- Associa um formato de imagem ao módulo coder especificado. O ImageMagick possui vários módulos coder para suportar a leitura e/ou escrita de um formato de imagem (por exemplo, JPEG). Alguns módulos coder suportam mais de um formato de imagem associado, e o mapeamento entre um formato associado e seu respectivo módulo coder é definido neste arquivo de configuração. Por exemplo, o módulo coder PNG suporta não apenas o formato de imagem PNG, mas também os formatos JNG e MNG.
- colors.xml
- Associa um nome de cor às suas intensidades de vermelho, verde, azul e alfa. Várias opções de linha de comando exigem um parâmetro de cor. Muitas vezes é conveniente referir-se a uma cor por nome (por exemplo, white) em vez de por valor hexadecimal (por exemplo, #fff). Este arquivo mapeia um nome de cor às suas intensidades equivalentes de vermelho, verde, azul e alfa (por exemplo, para white, red = 255, green = 255, blue = 255 e alpha = 0).
- configure.xml
- Define os parâmetros de compilação do ImageMagick e as variáveis de ambiente de todo o sistema (por exemplo, MAGICK_TEMPORARY_PATH). À medida que o ImageMagick é compilado, vários parâmetros de compilação são salvos neste arquivo de configuração. Eles incluem a versão, a data de lançamento, as bibliotecas delegate dependentes e a profundidade de quantum, entre outros.
- delegates.xml
- Associa programas delegate a determinados formatos de imagem. O ImageMagick depende de vários programas delegate para suportar certos formatos de imagem, como o darktable para ler formatos brutos de câmera ou o Ghostscript para ler imagens Postscript. Use este arquivo de configuração para mapear um formato de entrada ou saída a um programa delegate externo.
- english.xml
- Associa tags de mensagem a traduções em inglês.
- francais.xml
- Associa tags de mensagem a traduções em francês.
- locale.xml
- Associa tags de mensagem a uma tradução para a sua localidade. O ImageMagick possui várias mensagens informativas, de aviso e de erro que são representadas como tags. Tags são descrições curtas de uma mensagem, como FileNotFound ou MemoryAllocationFailed. Este arquivo de configuração lista as localidades que possuem uma tradução para cada tag reconhecida pelo ImageMagick. Atualmente, apenas traduções em inglês e francês estão disponíveis nos arquivos de configuração english.xml e francais.xml.
- log.xml
- Configura os parâmetros de log. O ImageMagick é capaz de emitir grandes quantidades de instruções informativas ou de depuração. Use este arquivo para configurar como a informação aparecerá em uma mensagem de log e onde você deseja que as mensagens de log sejam registradas.
- mime.xml
- Associa um tipo de mídia da internet a um identificador único. Muitos arquivos e fluxos de dados têm identificadores que identificam exclusivamente um determinado tipo de mídia da internet. Por exemplo, arquivos no formato "Corel Draw drawing" (mime type="application/vnd.corel-draw") estão associados ao padrão de nome de arquivo *.cdr e também têm uma string inicial dos caracteres "CDRXvrsn". O ImageMagick usa combinações dessas informações, quando disponíveis, para tentar determinar rapidamente o tipo de mídia da internet de um arquivo ou fluxo de dados.
- policy.xml
-
Configura as políticas de segurança do ImageMagick. Por padrão, qualquer coder, delegate, filtro ou caminho de arquivo é permitido. Use uma política para negar acesso, por exemplo, ao delegate de vídeo MPEG, ou para permitir a leitura de imagens de um sistema de arquivos mas negar a escrita nesse mesmo sistema de arquivos. Ou use a política de recursos para definir limites de recursos. As políticas são úteis para servidores multiusuário que desejam limitar o impacto geral que o ImageMagick tem no sistema. Por exemplo, para limitar o tamanho máximo de imagem em memória a 100MP:
Qualquer imagem maior que esse limite de área é armazenada em cache no disco em vez da memória. Use width para limitar a largura máxima de uma imagem em pixels. Exceda esse limite e uma exceção é lançada e o processamento é interrompido.
<policy domain="resource" name="width" value="8KP"/>
Para limitar o tempo decorrido de qualquer comando do ImageMagick a 5 minutos, use esta política:
<policy domain="resource" name="time" value="300"/>
Por conveniência, defina os argumentos para os recursos memory, map e disk com prefixos SI (por exemplo, 100MB). Além disso, as políticas de recursos são máximos para cada instância do ImageMagick (por exemplo, com o limite de memória da política em 1GB, a opção -limit 2GB excede o máximo da política, então o limite de memória é 1GB).
- quantization-table.xml
- Tabelas de quantização JPEG personalizadas. Ative com -define:q-table=quantization-table.xml.
- thresholds.xml
- Define mapas de limiar para pontilhamento posterizado ordenado.
- type.xml
- Configura fontes. Define o nome, a família, a foundry, o estilo, o formato, as métricas e os glifos de qualquer fonte que você queira usar no ImageMagick.
- type-ghostscript.xml
- Configura as fontes do Ghostscript. O pacote Ghostscript inclui várias fontes que podem ser acessadas com o ImageMagick.
- type-windows.xml
- Associa nomes a glifos de fontes do Windows.
No Linux, o ImageMagick procura por cada um dos arquivos de configuração listados acima nos locais indicados abaixo, em ordem, e os carrega se forem encontrados:
$MAGICK_CONFIGURE_PATH
$PREFIX/etc/ImageMagick-7
$PREFIX/share/ImageMagick-7
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/etc/ImageMagick
A variável de ambiente $PREFIX é o caminho de instalação padrão (por exemplo, /usr/local). O client path é o caminho de execução do seu cliente ImageMagick (por exemplo, /usr/local).
Para as distribuições binárias pré-compiladas e não instaladas do Linux, a ordem de carregamento da configuração é:
$MAGICK_CONFIGURE_PATH
$MAGICK_HOME/etc/ImageMagick-7
$MAGICK_HOME/share/ImageMagick-7
$PREFIX/share/ImageMagick-7
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick/
<client path>/etc/ImageMagick
<current directory>
No Windows, o ImageMagick procura por esses arquivos de configuração na ordem a seguir e os carrega se forem encontrados:
$MAGICK_CONFIGURE_PATH
<windows registry>
$PREFIX/config
$USERPROFILE/.config/ImageMagick
<client path>
Acima, $PREFIX é o caminho de instalação padrão, tipicamente c:\Program Files\ImageMagick-7.1.2.
Para uma instalação não instalada do Windows, a ordem de carregamento da configuração é:
$MAGICK_CONFIGURE_PATH
$MAGICK_HOME
$USERPROFILE/.config/ImageMagick
client path
<current directory>
Se um arquivo de configuração não puder ser encontrado, o ImageMagick recorre aos valores padrão integrados.
Módulos
Coders
Um coder de imagem (ou seja, codificador / decodificador) é responsável por registrar, opcionalmente classificar, opcionalmente ler, opcionalmente escrever e desregistrar um formato de imagem (por exemplo, PNG, GIF, JPEG, etc.). O ImageMagick procura por coders na ordem a seguir e usa a primeira correspondência encontrada:
$MAGICK_HOME/lib/ImageMagick-7.1.2/modules-Q16/coders
<client path>/../lib/ImageMagick-7.1.2/modules-Q16/coders
$MAGICK_HOME/lib/ImageMagick-7.1.2/modules-Q16/coders
$MAGICK_HOME/share/ImageMagick-7.1.2/modules-Q16/coders
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/lib/ImageMagick-7.1.2/modules-Q16/coders
Filtros
O ImageMagick fornece um mecanismo conveniente para adicionar seus próprios algoritmos personalizados de processamento de imagem. O ImageMagick procura por filtros na ordem a seguir e usa a primeira correspondência encontrada:
$MAGICK_HOME/lib/ImageMagick-7.1.2/modules-Q16/filters
<client path>/../lib/ImageMagick-7.1.2/modules-Q16/filters
$MAGICK_HOME/lib/ImageMagick-7.1.2/modules-Q16/filters
$MAGICK_HOME/share/ImageMagick-7.1.2/modules-Q16/filters
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/lib/ImageMagick-7.1.2/modules-Q16/filters
Fontes
O ImageMagick é capaz de carregar arquivos brutos de fontes TrueType e Postscript. Ele procura pelo arquivo de configuração de fontes, type.xml, na ordem a seguir e os carrega se forem encontrados:
$MAGICK_CONFIGURE_PATH
$MAGICK_HOME/etc/ImageMagick/-7.1.2
$MAGICK_HOME/share/ImageMagick-7.1.2
$XDG_CACHE_HOME/ImageMagick
$HOME/.config/ImageMagick
<client path>/etc/ImageMagick
$MAGICK_FONT_PATH
Variáveis de ambiente
As variáveis de ambiente reconhecidas pelo ImageMagick incluem:
| HOME | Define o caminho para procurar arquivos de configuração em $HOME/.config/ImageMagick se o diretório existir. |
|---|---|
| LD_LIBRARY_PATH | Define o caminho para as bibliotecas compartilháveis do ImageMagick e outras bibliotecas dependentes. |
| MAGICK_AREA_LIMIT | Define o máximo de width * height de uma imagem que pode residir na memória do cache de pixels. Imagens que excedem o limite de área são armazenadas em cache no disco (veja MAGICK_DISK_LIMIT) e opcionalmente mapeadas em memória. |
| MAGICK_FILTER_MODULE_PATH | Define o caminho de busca a ser usado ao procurar por módulos de processo de filtro (invocados via -process). Este caminho permite ao usuário estender a funcionalidade de processamento de imagem do ImageMagick adicionando módulos carregáveis a um local preferido em vez de copiá-los para o diretório de instalação do ImageMagick. A formatação do caminho de busca é semelhante aos caminhos de busca do sistema operacional (ou seja, delimitado por dois-pontos no Linux e por ponto-e-vírgula no Microsoft Windows). Este caminho de busca especificado pelo usuário é pesquisado antes de tentar o caminho de busca padrão. |
| MAGICK_CODER_MODULE_PATH | Define o caminho onde o ImageMagick pode localizar seus módulos coder. Este caminho permite ao usuário estender arbitrariamente os formatos de imagem suportados pelo ImageMagick adicionando módulos coder carregáveis a partir de um local preferido em vez de copiá-los para o diretório de instalação do ImageMagick. A formatação do caminho de busca é semelhante aos caminhos de busca do sistema operacional (ou seja, delimitado por dois-pontos no Linux e por ponto-e-vírgula no Microsoft Windows). Este caminho de busca especificado pelo usuário é pesquisado antes de tentar o caminho de busca padrão. |
| MAGICK_CONFIGURE_PATH | Define o caminho onde o ImageMagick pode localizar seus arquivos de configuração. Use este caminho de busca para procurar por arquivos de configuração (.xml). A formatação do caminho de busca é semelhante aos caminhos de busca do sistema operacional (ou seja, delimitado por dois-pontos no Linux e por ponto-e-vírgula no Microsoft Windows). Este caminho de busca especificado pelo usuário é pesquisado antes de tentar o caminho de busca padrão. |
| MAGICK_DATE_PRECISION | Define o número máximo de caracteres impressos para qualquer carimbo de data/hora. |
| MAGICK_DEBUG | Define as opções de depuração. Veja -debug para uma descrição das opções de depuração. |
| MAGICK_DISK_LIMIT | Define a quantidade máxima de espaço em disco, em bytes, permitida para uso pelo cache de pixels. Quando este limite é excedido, o cache de pixels não é criado e uma mensagem de erro é retornada. |
| MAGICK_ERRORMODE | Define o modo de erro do processo (somente Windows). Um uso típico pode ser um valor de 1 para impedir que as caixas de diálogo do modo de erro exibam uma caixa de mensagem e travem a aplicação. |
| MAGICK_FILE_LIMIT | Define o número máximo de arquivos de cache de pixels abertos. Quando este limite é excedido, quaisquer pixels subsequentes armazenados em cache no disco são fechados e reabertos sob demanda. Esse comportamento permite que um grande número de imagens seja acessado simultaneamente no disco, mas com uma penalidade de velocidade devido às repetidas chamadas de open/close. |
| MAGICK_FONT_PATH | Define o caminho onde o ImageMagick procura por arquivos de fontes TrueType e Postscript Type1. Este caminho só é consultado se um arquivo de fonte específico não for encontrado no diretório atual. |
| MAGICK_HEIGHT_LIMIT | Define a altura máxima de uma imagem. |
| MAGICK_HOME | Define o caminho no topo do diretório de instalação do ImageMagick. Este caminho é consultado por builds não instalados do ImageMagick que não têm sua localização codificada de forma fixa nem definida por um instalador. |
| MAGICK_LIST_LENGTH_LIMIT | Define o comprimento máximo de uma sequência de imagens. |
| MAGICK_MAP_LIMIT | Define a quantidade máxima de mapeamento de memória, em bytes, a ser alocada para o cache de pixels. Quando este limite é excedido, os pixels da imagem são armazenados em cache no disco (veja MAGICK_DISK_LIMIT). |
| MAGICK_MEMORY_LIMIT | Define a quantidade máxima de memória, em bytes, a ser alocada para o cache de pixels a partir do heap. Quando este limite é excedido, os pixels da imagem são armazenados em cache no disco mapeado em memória (veja MAGICK_MAP_LIMIT). |
| MAGICK_OCL_DEVICE | Defina como off para desativar a aceleração por hardware de certos algoritmos acelerados (por exemplo, blur, convolve, etc.). |
| MAGICK_PRECISION | Define o número máximo de dígitos significativos a serem impressos. |
| MAGICK_SHRED_PASSES | Se você quiser manter privados os arquivos temporários que o ImageMagick cria, sobrescreva-os com zeros ou dados aleatórios antes de serem removidos. Na primeira passagem, o arquivo é zerado. Nas passagens subsequentes, dados aleatórios são escritos. |
| MAGICK_SYNCHRONIZE | Defina como "true" para garantir que todos os dados da imagem sejam totalmente descarregados e sincronizados com o disco. Há uma penalidade de desempenho, no entanto, os benefícios incluem garantir um arquivo de imagem válido no caso de uma falha do sistema e o relato antecipado caso não haja espaço em disco suficiente para o cache de pixels da imagem. |
| MAGICK_TEMPORARY_PATH | Define o caminho para armazenar arquivos temporários. |
| MAGICK_THREAD_LIMIT | Define o número máximo de threads paralelas. Muitos algoritmos do ImageMagick são executados em paralelo em sistemas multiprocessadores. Use esta variável de ambiente para definir o número máximo de threads que têm permissão para executar em paralelo. |
| MAGICK_THROTTLE_LIMIT | Cede periodicamente a CPU por pelo menos o tempo especificado em milissegundos. |
| MAGICK_TIME_LIMIT | Define o tempo máximo em segundos. Quando este limite é excedido, uma exceção é lançada e o processamento é interrompido. |
| MAGICK_WIDTH_LIMIT | Define a largura máxima de uma imagem. |
| SOURCE_DATE_EPOCH | Um carimbo de data/hora UNIX, definido como o número de segundos, excluindo segundos bissextos, desde 01 Jan 1970 00:00:00 UTC. Configuração de propósito específico para builds de pipeline. Esta configuração desativa as configurações de time-to-live. |
Defina os argumentos para as variáveis de ambiente MAGICK_MEMORY_LIMIT, MAGICK_DISK_LIMIT e MAGICK_MEMORY_LIMIT com prefixos SI (por exemplo, 100MB). MAGICK_WIDTH_LIMIT, MAGICK_HEIGHT_LIMIT e MAGICK_AREA_LIMIT aceitam sufixos de pixels, como MP para megapixels (por exemplo, 100MP). Observe que você pode restringir limites em relação a quaisquer políticas de segurança, mas não pode relaxá-los.