Endpoints de imagem

JL
Last updated 6 months ago

O Filesquash oferece algumas operações em imagens, como redimensionamento, desfoque, marca d'água e escala de cinza para permitir que você foque no que realmente importa: o seu produto.

Processamento de imagens

https://filesquash.io/v1/__PROJECT_ID__/process
/AxB:CxD
/fit-in
/-Ex-F
/HALIGN
/VALIGN
/smart
/filters:FILTERNAME(ARGUMENT):FILTERNAME(ARGUMENT)
/__IMAGE_URI__
  • __PROJECT_ID__ indica o id do seu projeto;

  • AxB:CxD indica para o Filesquash recorte manual a partir do ponto AxB, que representa o canto superior esquerdo, até o ponto CxD, que representa o canto inferior direito;

  • fit-in indica que a imagem gerada não deverá ser automaticamente recortada e deverá ser contida numa caixa imaginária especificada por ExF;

  • -Ex-F indica que a imagem deverá ser redimensionada para ExF, onde E indica a largura e F a altura da mesma. O sinal de menos indica que a imagem deverá ser espelhada na horizontal ou vertical;

  • HALIGN indica o alinhamento horizontal do recorte;

  • VALIGN indica o alinhamento vertical do recorte;

  • smart indica que será usado o nosso algoritmo de recorte inteligente usando detecção de pontos focais da imagem (experimental);

  • filters indica os filtros que serão aplicados na imagem. Eles serão aplicados de forma sequencial, conforme especificado na URL;

  • __IMAGE_URI__ indica a URL pública da imagem que você gostaria de redimensionar. Por ora, se for adicionar o protocolo, é preciso escapar os caracteres especiais de URL.

Recorte manual

O recorte manual é totalmente opcional. Ele é muito útil para aplicações que oferecem soluções customizadas de recorte em tempo real para seus usuários.

A parte da URL que define o recorte manual recebe dois pontos, se parados por :, como argumentos. O primeiro ponto representa o ponto superior esquerdo do retângula de recorte. O segundo ponto representa o ponto inferior direito.

O recorte é realizado antes de todas as operações, então ele pode ser usado como um passo de preparação antes do redimensionamento e recorte inteligente.

Fit in

O argumento fit-in especifica que a imagem não deverá ser automaticamente recortada, e sim, automaticamente redimensionada para "caber" no retângulo imaginário especificado pela altura e largura especificados através de ExF.

Considere uma imagem de 800px x 600px, e um espaço disponível de 300px x 200px. Esta é a forma que o Filesquash irá redimensioná-la:

An image in a vertical fit-in

Considere uma imagem de 400px x 600px, e um espaço disponível de 300px x 200px. Esta é a forma que o Filesquash irá redimensioná-la:

An image in a horizontal fit-in

Isso é muito útil quando você quer encaixar uma imagem em algum lugar, mas não tem noção das dimensões originais da imagem.

Tenha em mente que sua imagem não será aumentada caso ela seja menor que as dimensões especificadas por ExF. Uma forma de sempre obter as imagens no tamanho solicitado é através da utilização do filtro de preenchimento.

Dimensões da imagem

É possivel, atraves dos parâmetros ExF, indicar para o Filesquash em quais dimensões ele deverá retornar a imagem. O Filesquash utiliza algoritmos inteligentes de recorte e redimensionamento.

Se você omitir ou usar zero como valor para uma das dimensões da imagem (ex.: 300x, 300x0, x200, 0x200, etc.), o Filesquash irá determinar a dimensão omitindo como proporcional a da imagem original. Digamos que voce tenha uma imagem 800x600px e solicite uma imagem com o tamanho 400x. O Filesquash irá inferir que a altura desejada para imagem é 300px.

Se você usar 0x0, o Filesquash irá retornar uma imagem nas dimensões originais e não aplicará nenhum corte ou redimensionamento.

Se você especificar uma das dimensões usando a string orig (ex.: origx100, 100xorig, origxorig), o Filesquash irá interpretar que você deseja que aquela dimensão seja a mesma da imagem original. Considere uma imagem de 800x600px. Se você solicitar a versão 300xorig, o Filesquash irá interpretar que você deseja uma imagem com 300x600px.

Se você usar origxorig, o Filesquash irá retornar uma imagem nas dimensões originais e não aplicará nenhum corte ou redimensionamento.

O valor padrão (caso seja omitido) para essa opção é usar o tamanho proporcional ao da imagem original, ou seja, 0x0.

Alinhamento horizontal

Como explicado acima, a não que a imagem tenha a mesma proporção que o tamanho desejado, algum recorte irá ocorrer.

A opção de alinhamento horizontal controla onde o recorte irá ocorrer caso seja necessário algum aparo na largura.

Então, se nós precisamos aparar 300px da largura e o alinhamento horizontal atual é left, então nós iremos aparar 0px na esquerda da imagem e 300px na direita da imagem.

Os valores possíveis são:

  • left - apara apenas na direita;

  • center - apara metade da largura na direita e metade na esquerda;

  • right - apara apenas na esquerda.

É importante ressaltar que essa opção é inútil caso a imagem seja aparada verticalmente, já que o algoritmo de recorte do Filesquash só corta em uma direção.

O valor padrão (caso seja omitido) para essa opção é center.

Alinhamento vertical

A opção de alinhamento vertical é análoga a de alinhamento horizontal, com a diferença que ela controla o aparo na vertical.

Então, se precisarmos aparar 300px da altura e o alinhamento vertical atual for top, então nós iremos aparar 0px da imagem no topo e 300px no rodapé da imagem.

Os valores possíveis são:

  • top - apara apenas no rodapé;

  • middle - apara metade da altura no topo e metade no rodapé;

  • bottom - apara apenas no topo.

É importante ressaltar que essa opção é inútil caso a imagem seja aparada horizontalmente, já que o algoritmo de recorte do Filesquash só corta em uma direção.

O valor padrão (caso seja omitido) para essa opção é middle.

Recorte inteligente (experimental)

O Filesquash usa algumas técnicas avançadas para obter pontos importantes de uma imagem (que são referenciados como Pontos Focais no resto dessa documentação).

Se você usá-lo na url da imagem, o recorte inteligente sera aplicado e irá sobrescrever os alinhamentos horizontal e vertical caso os Pontos Focais sejam encontrados.

O valor padrão (caso seja omitido) para essa opção é não usar o recorte inteligente.

Filtros

O Filesquash permite o uso de uma varidade de filtros que serão aplicados de forma sequencial na imagem. Caso queira saber mais, os detalhes de cada filtro são descritos na página Filtros.

Para usar os filtros, adicione o fragmento filters: na URL. Filtros são como chamadas de funções (ex.: filter_name(argument, argument2, etc)) e são separados pelo caractere :.

URL da Imagem

O último fragmento do endpoint de imagens é a URL completa de sua imagem. Por ora é preciso escapar os caracteres especiais de URL.

Imagens hospedadas no Filesquash

Embora o endpoint /process consiga processar as imagens hospedadas no Filesquash, o recomendado e que se use o endpoint /assets. Onde, ao invés de informar a URL da imagem, informa-se o ID único da imagem armazenada no Filesquash.

Todas as outras opções continuam as mesmas, conforme descrito a seguir.

https://filesquash.io/v1/__PROJECT_ID__/assets
/__IMAGE_ID__
/AxB:CxD
/fit-in
/-Ex-F
/HALIGN
/VALIGN
/smart
/filters:FILTERNAME(ARGUMENT):FILTERNAME(ARGUMENT)