# Filtros

Filtros afetam uns aos outros na ordem em que foram especificados. Se a imagem original tiver as dimensões 60x40px e a URL do Filesquash se parecer com:

```
https://filesquash.io/v1/__PROJECT_ID__/assets/
    __IMAGE_ID__/
    fit-in/
    100x100/
    filters:watermark(..):blur(..):fill(red,1):upscale()
```

então primeiro será verificado se a imagem cabe dentro de 100x100px (que no caso ela cabe), então receberá a marca d'água, então ela sera desfocada (incluindo a marca d'água), então ela será preenchida com vermelho, para que possa ocupar os espaço disponível de 100x100px.

## Cor de fundo

**Uso**: background\_color(cor)

#### Descrição

O filtro background\_color atribui a cor especificada a camada de fundo.

{% hint style="info" %}
Isto é especificamente útil ao converter imagens com transparência (PNG) para JPEG.
{% endhint %}

#### Argumentos

* **cor** - O nome da cor (como no HTML) ou a expressão hexadecimal rgb sem o caractere `#`  (veja [`https://en.wikipedia.org/wiki/Web_colors`](https://en.wikipedia.org/wiki/Web_colors) como exemplo). Se o valor for igual a `auto`, uma cor sera inteligentemente inferida de acordo com os pixels da imagem.

## Desfoque

**Uso**: blur(raio \[, sigma])

#### Descrição

Este filtro aplica um desfoque gaussiano a imagem.

#### Argumentos

* **raio** - Raio utilizado na função gaussiana para gerar a matriz, o valor máximo e 150. Quanto maior o raio, mais desfocada será a imagem.
* **sigma** (opcional) - Por padrão, é o mesmo valor definido para o raio. Sigma usado na função

  &#x20;gaussiana.

## Brilho

**Uso**: brightness(quantidade)

#### Descrição

Este filtro aumenta ou diminui o brilho da imagem.

#### Argumentos

* **quantidade** (-100 a 100) -  A quantidade (em %) para alterar o brilho da imagem. Números positivos deixam a imagem mais brilhante e números negativos deixam a imagem mais escura.

## Contraste

**Uso**: contrast(quantidade)

#### Descrição

Este filtro aumenta ou diminui o contraste da imagem.

#### Argumentos

* **quantidade** (-100 a 100) -  A quantidade (em %) para alterar o contraste da imagem. Números positivos aumentam o contraste e números negativosdiminuem o contraste.

## Preenchimento de cor

**Uso**: fill(cor\[,preencher\_transparência])

#### Descrição

Este filtro permite retornar uma imagem redimensionada com as dimensões solicitadas de forma exata independente de sua proporção, preenchendo com a cor escolhida as partes faltantes. Normalmente é um filtro utilizado nos modos `fit-in` ou `adaptive-fit-in`.

#### Argumentos

* **cor** - O nome da cor (como no HTML) ou a expressão hexadecimal rgb sem o caractere `#`  (veja [`https://en.wikipedia.org/wiki/Web_colors`](https://en.wikipedia.org/wiki/Web_colors) como exemplo). Se o valor for igual a `auto`, uma cor sera inteligentemente inferida de acordo com os pixels da imagem. Caso o valor seja igual a `transparent` e o formato da imagem suporte transparência, então o fundo será preenchido com transparência.
* **preencher\_transparência** - Um valor booleano que especifica se as partes transparentes da imagem devem ser preenchidas ou nao. Os valores aceitos são `true` ou `false`. Este argumento e opcional e o valor padrão e `false`.

## Formato

**Uso**: format(formato)

#### Descrição

Este filtro especifica o formato de saída da imagem.&#x20;

#### Argumentos

* **formato** - O formato de saída da imagem resultante. Os valores aceitos são `webp`, `jpeg`, `gif` ou `png`.

## Escala de cinza

**Uso**: grayscale()

#### Descrição

Este filtra converte a imagem para a escala de cinza.

#### Argumentos

Sem argumentos.

## Qualidade

**Uso**: quality(quantidade)

#### Descrição

Este filtro especifica a qualidade de imagens JPEG (não e aplicável para PNGs ou GIFs).

#### Argumentos

* **quantidade** (0 to 100) - O nível de qualidade (em %) que a imagem final terá.

## Rotacionar

**Uso**: rotate(ângulo)

#### Descrição

Este filtro rotaciona a imagem de acordo com o ângulo recebido.

#### Argumentos

* **ângulo** (0 to 359) - O ângulo para rotacionar a imagem. Números maiores ou iguais a 360 serão convertidos no ângulo equivalente entre 0 e 359.

## Cantos arredondados

**Uso**: round\_corner(a|b,r,g,b)

#### Descrição

Este filtro adiciona cantos arredondados a imagem usando a cor especificada como cor de fundo.

#### Argumentos

* **a|b** - Quantidade de pixels para usar como raio. O argumento `b` não e obrigatório, mas ele especifica o segundo valor da elipse usada para o raio.

## Marca d'água

**Uso**: watermark(imagem, x, y, alfa \[, proporção\_largura \[, proporção\_altura]])

#### Descrição

Este filtro adiciona uma Marca d'água a imagem. Ela pode ser posiciona dentro da imagem com um canal alfa especificado e, opcionalmente, ser redimensionada de acordo com o tamanho da imagem ao especificar a proporção (veja [Redimensionamento](https://filesquash.gitbook.io/docs/recorte-e-redimensionamento#redimensionando-a-imagem)).

#### Argumentos <a href="#arguments-7" id="arguments-7"></a>

* **imagem** - Url da imagem de marca d'água. É preciso escapar os caracteres especiais de URL.
* **x** - Posicionamento horizontal da marca d'água. Números positivos indicam que a imagem deverá ser posicionada da esquerda para a direita, enquanto números negativos indicam que a imagem deverá ser posicionada da direita para a esquerda. Se o valor for `center`, a marca d'água será centralizada horizontalmente. Se o valor for `repeat`, a marca d'água será repetida horizontalmente. Se o valor for um número seguido do caractere `p`(ex: 20p), então o valor será calculado como porcentagem.
* **y** - Posicionamento vertical da marca d'água. Números positivos indicam que a imagem deverá ser posicionada do topo para o rodapé, enquanto números negativos indicam que a imagem deverá ser posicionada do rodapé para o topo. Se o valor for `center`, a marca d'água será centralizada verticalmente. Se o valor for `repeat`, a marca d'água será repetida verticalmente. Se o valor for um número seguido do caractere `p`(ex: 20p), então o valor será calculado como porcentagem.
* **alfa** - Transparência a ser aplicada na marca d'água. Deve ser um número entre `0` (totalmente opaco) e `100` (totalmente transparente).
