Repolode
dmtrKovalenko

dmtrKovalenko/odiff

Ferramenta de linha de comando rápida e otimizada com SIMD, além de biblioteca Node.js, que compara imagens pixel a pixel e gera uma imagem de diferenças.

Alternativa open source a:ImageMagick

Estrelas
3,274
Forks
118
Issues abertas
16
Último commit
há 6 dias

O que é?

odiff compara visualmente duas imagens, pixel a pixel, e pode salvar as diferenças destacadas em um arquivo PNG. A ferramenta é voltada a testes de regressão visual, nos quais capturas de tela de uma execução de testes são comparadas com imagens de referência armazenadas, mas também funciona com qualquer par de imagens, como fotos ou resultados gerados por IA.

A ferramenta foi escrita em Zig e usa instruções SIMD (SSE2, AVX2, AVX512 e NEON) para ganhar velocidade. Aceita imagens PNG, JPEG, WebP e TIFF, inclusive comparações entre formatos, e consegue lidar com imagens com layouts diferentes. As opções incluem limites de cor, detecção de anti-aliasing, regiões retangulares ignoradas e relatórios das linhas e colunas com diferenças.

Além do binário independente, odiff oferece uma API Node.js (pacote odiff-bin) com um modo de servidor persistente que evita iniciar um processo a cada comparação. Há integrações com Playwright, Cypress e R, e vários serviços de testes visuais usam a ferramenta como mecanismo de comparação.

Recursos principais

  • 01Compara imagens PNG, JPEG, WebP e TIFF, inclusive entre formatos diferentes.
  • 02Usa otimizações SIMD para SSE2, AVX2, AVX512 e NEON.
  • 03Detecta pixels com anti-aliasing e permite ignorar regiões especificadas.
  • 04Aceita imagens com layouts diferentes e informa os índices das linhas e colunas com diferenças.
  • 05Oferece uma API Node.js e um modo de servidor persistente.

Casos de uso

  • Testes de regressão visual de páginas da web em pipelines de CI.
  • Comparação de capturas de tela do Playwright ou Cypress com imagens de referência armazenadas.
  • Verificação de alterações em imagens geradas ou renderizações entre builds.

Início rápido

  1. 1

    Instalar a CLI via npm

    npm install odiff-bin
  2. 2

    Consultar a ajuda da CLI

    odiff --help
  3. 3

    Comparar duas imagens e gerar uma imagem com as diferenças

    odiff <IMG1 path> <IMG2 path> [DIFF output path]

Antes de usar

  • O README não dá detalhes sobre a compatibilidade dos binários pré-compilados com Windows ou Linux, além de dizer «a maioria das plataformas».

Tópicos

Perguntas frequentes

O que é odiff?
Ferramenta de linha de comando rápida e otimizada com SIMD, além de biblioteca Node.js, que compara imagens pixel a pixel e gera uma imagem de diferenças. odiff compara visualmente duas imagens, pixel a pixel, e pode salvar as diferenças destacadas em um arquivo PNG. A ferramenta é voltada a testes de regressão visual, nos quais capturas de tela de uma execução de testes são comparadas com imagens de referência armazenadas, mas também funciona com qualquer par de imagens, como fotos ou resultados gerados por IA.
odiff é gratuito? Qual é a licença?
odiff é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
odiff ainda é mantido?
Manutenção ativa. O último commit de odiff foi em 13 de out. de 2026.
Para que posso usar odiff?
Testes de regressão visual de páginas da web em pipelines de CI. Comparação de capturas de tela do Playwright ou Cypress com imagens de referência armazenadas. Verificação de alterações em imagens geradas ou renderizações entre builds.
Como instalar odiff?
Instalar a CLI via npm: npm install odiff-bin Consultar a ajuda da CLI: odiff --help Comparar duas imagens e gerar uma imagem com as diferenças: odiff <IMG1 path> <IMG2 path> [DIFF output path]
Onde consigo odiff?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/dmtrKovalenko/odiff

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados