#png #lcs #bitmap

已删除 lcs-png-diff-rs

基于LCS算法的PNG差分工具

0.1.0 2022年5月14日

#18 in #lcs

MIT 协议

22KB
423

lcs-png-diff-rs

使用最长公共子序列算法生成差分位图(PNG)。本项目灵感来源于 LCS-IMAGE-DIFF。但它将 LCS-IMAGE-DIFF 和其依赖的算法包 LCS-DIFF 合并在一起。

特性

  • 仅支持PNG图像作为输入和输出
  • 支持简单的命令行界面
  • 支持批量差分操作

示例

  • 比较一对png文件
lcs-png-diff \
    -b path/to/before.png \
    -a path/to/after.png \
    -d path/to/diff/result.png
  • 比较多对png文件
lcs-png-diff \
    -j path/to/pair.json

批量差分操作输入的JSON模式

{
    "$schema": "https://json-schema.fullstack.org.cn/draft-04/schema#",
    "type": "array",
    "items": [
        {
            "type": "object",
            "properties": {
                "before": {
                    "type": "string"
                },
                "after": {
                    "type": "string"
                },
                "result": {
                    "type": "string"
                }
            },
            "required": [
                "before",
                "after"
            ]
        }
    ]
}

result 属性是可选的。如果省略,结果PNG文件将生成在原始PNG文件的同一位置,并以 "_result" 为基本名称。例如

[
  {
    "before": "tests/fixtures/pricing.png",
    "after": "tests/fixtures/pricing_after.png"
  },
  {
    "before": "tests/fixtures/slider.png",
    "after": "tests/fixtures/slider_after.png"
  },
  {
    "before": "tests/fixtures/text-area.png",
    "after": "tests/fixtures/text-area_after.png"
  }
]

使用上述JSON内容作为批量操作输入将在相对路径 tests/fixtures/fixtures/ 中生成三个名为 pricing_result.png、slider_result.png 和 text-area_result.png 的文件。

基准测试

cargo criterion

许可证

MIT许可证 (MIT)

版权所有 (c) 2022 @jianliao

在此特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用该软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向获得软件的人提供使用该软件的权利,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是基于合同、侵权或其他方式产生的,以及与软件或使用或操作软件有关。

依赖关系

~4.5–6.5MB
~118K SLoC