#svg #image #diff #graphics #2d-graphics

bin+lib lukaj

SVG 图像的交互式 diff 工具

5 个版本

0.2.0 2023年12月22日
0.1.3 2023年12月7日
0.1.2 2023年12月5日
0.1.1 2023年12月3日
0.1.0 2023年11月27日

#384图像

每月 44 次下载

LGPL-3.0 或更高版

490KB
984

SVG 图像的交互式 diff 工具。

Crates.io CI - Main License Coverage Status

功能

支持缩放和拖动的 SVG 图形比较滑动。

安装

要安装 lukaj 的预编译版本,请访问 最新版本 页面,并下载适用于您系统的存档。提供的二进制文件是 Windows 和 Linux 的静态可执行文件。

如果您是 Rust 程序员,可以使用 cargo 安装 lukaj。它支持两种图形后端,这些后端可以通过 cargo 特性 启用或禁用。默认情况下,use-rsvg 特性仅在从源安装时可用,发布页面上的预编译二进制文件仅包含默认功能集。

功能名称 SVG 库 2D 渲染库 预编译的二进制发布
use-usvg (默认) resvg tiny-skia
use-rsvg librsvg cairo

根据操作系统和所选功能集,lukaj 可能需要额外的开发库。

Ubuntu Linux(点击展开)
  1. 仅使用默认 use-usvg 功能时

    $ sudo apt-get install libsdl2-dev
    $ cargo install lukaj
    
  2. 使用额外的 use-rsvg 功能时

    $ sudo apt-get install build-essential libcairo2-dev libgdk-pixbuf-2.0-dev \
        libglib2.0-dev libpango1.0-dev libsdl2-dev libxml2-dev
    $ cargo install lukaj --feature user-rsvg
    
Windows 上 (使用 MSYS2) (点击展开)
  1. 安装 MSYS2 并从其终端运行

    • 对于默认 use-usvg 功能

      $ pacman -S mingw-w64-x86_64-SDL2
      
    • 对于额外的 use-rsvg 功能

      $ pacman -S mingw-w64-x86_64-gtk4 mingw-w64-x86_64-gettext \
          mingw-w64-x86_64-libxml2 mingw-w64-x86_64-pkgconf \
          mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2
      
  2. 将 mingw 二进制文件路径 (C:\msys64\mingw64\bin) 添加到系统 Path

  3. 将默认 rust 工具链更改为 stable-gnu

    rustup toolchain install stable-gnu
    rustup default stable-gnu
    
  4. 运行 cargo install 命令

    • 仅对于默认功能

      $ cargo install lukaj
      
    • 对于额外的 use-rsvg 功能

      $ cargo install lukaj --features use-rsvg
      

有关不同设置的说明,请参阅此 使用 Rust 和 GTK4 进行 GUI 开发的指南

用法

要比较两个 SVG 文件,请运行

$ lukaj [path 1] [path 2]

Lukaj 使用以下鼠标/键盘控制

按钮 操作
左键点击 移动 diff 分隔符
右键点击 移动图像
滚动 放大和缩小
R 重置图像位置
Esc 退出
完成 lukaj 选项 (点击展开)
$ lukaj --help
Interactive diff tool for SVG images

Usage: lukaj [OPTIONS] [FILES]...

Arguments:
  [FILES]...  Files to compare

  Options:
    -s, --scale <VALUE>      Sets a scaling factor
    --backend <BACKEND>      Preferred backend [default: rsvg-with-cairo]
                             [possible values: rsvg-with-cairo, usvg-with-skia]
    -h, --help               Print help
    -V, --version            Print version

Git 集成

Lukaj 可以用作 git difftool。要添加 git diff-svg 自定义命令,将以下部分复制并粘贴到 .gitconfig 文件中

[difftool "lukaj"]
    cmd = ~/.cargo/bin/lukaj $LOCAL $REMOTE
[alias]
    diff-svg = "difftool -t lukaj -y"

其他集成

依赖项

~20–36MB
~598K SLoC