Skip to content

Latest commit

 

History

History
93 lines (63 loc) · 3.27 KB

readme.PT_BR.MD

File metadata and controls

93 lines (63 loc) · 3.27 KB

Um algoritmo de compressão de imagens com perda, baseado em detecção de nível de detalhe por blocos, implementado em Rust.

pixzlr

Vezes baixado Vezes baixado (recentemente) Versão do pacote

Última atualização no GitHub

Instalando

Apenas coloque pixlzr = "0" nas dependências ([dependencies]) em seu Cargo.toml.

Utilização

Antes de usar

Agora, a caixa pixlzr tem duas APIs paralelas, com diferentes usos e funcionalidades.

O uso básico, de reduzir / encolher um elemento image::DynamicImage, é presente em ambos. Mas no futuro, a API antiga será ou apagada ou reescrita baseada na nova, que suporta salvar / ler arquivos.

Usando a API antiga

use image::{open, DynamicImage};
use pixlzr::{process, tree_process, tree_full_process};

// ...

let image: DynamicImage = open("img.png")?;

process(&image, 64, Some(|v| v / 4.0))
    .save("img-processada.png")?;

tree_process(&image, 64, 0.25, Some(|v| v / 6.0))
    .save("img-processada-tree.png")?;

tree_full_process(&image, 0.25, Some(|v| v / 6.0))
    .save("img-processada-tree-full.png")?;

Usando a nova API

// Importação
use image::{open, DynamicImage};
use pixlzr::{FilterType, Pixlzr};
// Converter para
let png: DynamicImage = open("img.png");

let mut pix = Pixlzr::from_image(&img, 64, 64u32);
pix.shrink_by(FilterType::Gaussian, 0.8);

pix.save("imagem pix-lizada.pixlzr")?;
// Converter de volta
let pix = Pixlzr::open("imagem pix-lizada.pixlzr")?;
let img = pix.to_image(FilterType::Nearest)?;
img.save("imagem-reduzida.png");

CLI

A CLI pode ser entendida com um simples uso de pixlzr -h.

Pixlzr - A rust lib and CLI for the pixlzr image format

Usage: pixlzr [OPTIONS] --input <INPUT> --output <OUTPUT>

Options:
  -i, --input <INPUT>                The input image file
  -o, --output <OUTPUT>              The output image file
  -b, --block-width <BLOCK_WIDTH>    The width of each block [default: 64]
      --block-height <BLOCK_HEIGHT>  The height of each block
  -k, --shrink-by <SHRINK_BY>        The shrinking factor [default: 1]
      --filter <FILTER>              The filter used when resizing the image blocks [default: lanczos3] [possible values: nearest, triangle, catmull-rom, gaussian, lanczos3]
  -h, --help                         Print help (see more with '--help')
  -V, --version                      Print version

O programa converte de e para o formato pixlzr, com uso da caixa image.

Conceito principal

Ainda a ser escrito...
Favor conferir GitHub:guiga-zalu/smart-pixelizer, já que é a implementação em Node JS.