Compressão automática de imagens

Compressão automática de imagens importadas para o sistema.

Por padrão, são comprimidas automaticamente as imagens importadas para o sistema utilizando:

Isto inclui processos e ferramentas como:

  • Edição da imagem de perfil do usuário.
  • Administração do sistema > Armazenamento de arquivos > Importação de arquivos.
  • Administração do sistema > Aparência e personalização > Tela de login.
  • Administração do sistema > Aparência e personalização > Ambiente.
  • Administração do sistema > Segurança > Grupos, papéis e usuários > Usuários (grade “Imagens de perfil de usuário”).

A compressão não é aplicada a imagens inseridas diretamente usando a extensão do VS Code ou o processo “Administração do sistema > Classes de dados > Explorador de arquivos”.

Perfis de compressão de imagens

Um perfil de compressão de imagens é um conjunto de regras, onde cada regra determina as opções de compressão para uma determinada lista de formatos de imagem. Estas opções incluem o codificador a ser utilizado, assim como parâmetros de compressão específicos para esse codificador.

Uma regra pode definir, por exemplo, que imagens “png” e “bmp” devem ser comprimidas utilizando o codec “avif”, com qualidade de 50% e velocidade 6. Um conjunto de regras deste tipo define um perfil de compressão. Para realizar a compressão, o sistema consulta o perfil de compressão de imagem configurado para aquela importação.

Estes perfis podem ser consultados e editados no processo “Administração do sistema > Armazenamento de arquivos > Perfis de compressão de imagens”. Neste processo, também é possível simular uma compressão e comparar as duas imagens (original e comprimida) lado a lado com um slider.

Configurando os perfis de compressão

O sistema conta com dois perfis básicos:

  • Padrão: Usado para aplicações gerais, quando alguma imagem é carregada no sistema.
  • Plano de fundo: Usado em imagens carregadas como plano de fundo do sistema.

As chaves destes perfis estão definidas como padrão nas seguintes configurações gerais, respectivamente:

  • ngin.imageCompression.defaultProfile
  • wf.imageCompression.screenBackgroundProfile

O sistema utiliza o perfil configurado em wf.imageCompression.screenBackgroundProfile nos processos “Ambiente” e “Tela de login”, em “Administração do sistema > Aparência e personalização”, e utiliza o perfil configurado em ngin.imageCompression.defaultProfile para todo o resto das importações em que a compressão de imagem se aplica.

Caso necessite mudar o comportamento de um destes perfis, crie um novo perfil no processo “Perfis de compressão de imagens” e insira sua chave na configuração geral que desejar.

Caso deseje criar uma nova funcionalidade que necessite de importação de imagens e precise possuir um perfil de compressão adequado ao uso dessa funcionalidade:

  • Crie uma configuração geral para o perfil de compressão daquela funcionalidade.
  • Crie um novo perfil de compressão de imagens e defina as regras desejadas.
  • Insira a chave do perfil criado como valor padrão da configuração geral.
  • Utilize GeneralSettings.prototype.get na implementação da funcionalidade para obter o perfil de compressão definido para ela.

Isto é importante nos perfis de chave negativa, para que bases licenciadas para aquele produto possam customizar a compressão de imagens da funcionalidade modificando apenas a configuração geral.

Utilizando os perfis programaticamente

UploadDialog

Ao criar um diálogo de upload com Process.prototype.upload ou diretamente com UploadDialog, é possível passar as opções de upload. Duas dessas opções são:

  • imageAutoCompress: Habilita ou desabilita a compressão automática. Verdadeiro por padrão.
  • imageCompressionProfile: Sobrescreve o perfil de compressão de imagem definido em ngin.imageCompression.defaultProfile. Observe que passar esse parâmetro como nulo não desativa a compressão, apenas reverte para o uso do perfil padrão.

FileStorage

Uma instância de FileStorage é criada a partir de uma classe de dados filha de “Relações entre cadastros e arquivos” (-1898141863). Caso queira configurar a compressão de imagens para uma determinada classe de dados, ajuste as opções a seguir:

  • imageAutoCompress: Habilita ou desabilita a compressão automática. Na classe “Relações entre cadastros e imagens” (-1898141862), esta propriedade é verdadeira por padrão.
  • imageCompressionProfile: Sobrescreve o perfil de compressão de imagem definido em ngin.imageCompression.defaultProfile.

Esta configuração de compressão também se aplica às grades que listam os arquivos desta classe.

Compressão direta

Também é possível obter de forma direta uma instância de ImageCompressor a partir da chave de um perfil. Basta utilizar a classe ImageCompressorProfile.

Desativando a compressão

Para desativar a compressão de uma instância específica de UploadDialog ou de uma classe de dados, basta definir a propriedade imageAutoCompress para false, como já foi visto anteriormente.

Para desativar um perfil específico de chave negativa (por exemplo, o perfil padrão do sistema), crie um novo perfil de compressão vazio (sem regra definida) e insira sua chave na respectiva configuração geral.