Repolode
dmtrKovalenko

dmtrKovalenko/odiff

Zig로 작성된 빠르고 SIMD 최적화된 픽셀 단위 이미지 비교 도구로, CLI와 Node.js API를 제공합니다.

스타
3,272
포크
118
열린 이슈
16
마지막 커밋
6일 전

어떤 프로젝트인가요?

odiff는 두 이미지를 픽셀 단위로 비교하고 변경된 영역을 강조 표시한 diff 이미지를 생성합니다. 빌드에서 만든 스크린샷을 기준 이미지와 대조하는 시각적 회귀 테스트를 주된 용도로 하지만, 사진이나 AI 생성 이미지처럼 비슷한 이미지 쌍을 비교하는 데도 사용할 수 있습니다.

독립 실행형 명령줄 바이너리로 실행하거나 odiff-bin 패키지를 통해 Node.js에서 호출할 수 있습니다. 이 패키지는 한 번만 비교하는 함수와, 매번 새 프로세스를 실행하지 않고 여러 비교를 수행하는 영구 ODiffServer를 제공합니다. 다른 런타임에서 사용할 수 있도록 JSON stdio 프로토콜을 지원하는 서버 모드도 있습니다. 비교 시 임계값 조정, 안티앨리어싱 감지, 무시할 영역 지정, 변경된 행과 열 인덱스의 선택적 보고 기능을 지원합니다.

지원 형식은 PNG, JPEG, WebP, TIFF이며 서로 다른 형식의 이미지도 비교할 수 있습니다. 핵심 코드는 Zig로 작성되었으며 SSE2, AVX2, AVX512, NEON용 SIMD 경로를 제공합니다. Playwright, Cypress, R 및 여러 시각적 테스트 서비스와의 연동을 지원합니다.

핵심 기능

  • 01픽셀 단위로 비교하고 변경된 영역을 강조한 diff 이미지 생성
  • 02PNG, JPEG, WebP, TIFF 지원 및 서로 다른 형식 간 비교
  • 03안티앨리어싱 감지 및 지정한 직사각형 영역 무시
  • 04일괄 비교를 위한 영구 서버 모드를 지원하는 Node.js API
  • 05SSE2, AVX2, AVX512, NEON SIMD 최적화

활용 사례

  • CI 파이프라인에서 웹 페이지의 시각적 회귀 테스트
  • Playwright 또는 Cypress 스크린샷을 기준 이미지와 비교
  • 애플리케이션 빌드 간 의도하지 않은 UI 변경 감지
  • Node.js 스크립트로 대량의 이미지 일괄 비교

토픽

자주 묻는 질문

odiff은(는) 무엇인가요?
Zig로 작성된 빠르고 SIMD 최적화된 픽셀 단위 이미지 비교 도구로, CLI와 Node.js API를 제공합니다. odiff는 두 이미지를 픽셀 단위로 비교하고 변경된 영역을 강조 표시한 diff 이미지를 생성합니다. 빌드에서 만든 스크린샷을 기준 이미지와 대조하는 시각적 회귀 테스트를 주된 용도로 하지만, 사진이나 AI 생성 이미지처럼 비슷한 이미지 쌍을 비교하는 데도 사용할 수 있습니다.
odiff은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
odiff은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
odiff은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. odiff의 마지막 커밋은 2026년 10월 13일입니다.
odiff은(는) 어디에 사용할 수 있나요?
CI 파이프라인에서 웹 페이지의 시각적 회귀 테스트 Playwright 또는 Cypress 스크린샷을 기준 이미지와 비교 애플리케이션 빌드 간 의도하지 않은 UI 변경 감지 Node.js 스크립트로 대량의 이미지 일괄 비교
odiff은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/dmtrKovalenko/odiff

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트