@routerhub/agent-rules 1.5.206 → 1.5.207
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -80,7 +80,10 @@ def brief(values, keep=12):
|
|
|
80
80
|
return values[:keep] + ["… 共 %d 个" % len(values)]
|
|
81
81
|
|
|
82
82
|
before, after = "before.png", "after.png"
|
|
83
|
-
|
|
83
|
+
md5_before, md5_after = md5(before), md5(after)
|
|
84
|
+
print("md5 before:%s" % md5_before) # 打印完整 32 位值:报告里要原样贴出来,供读者自己复算
|
|
85
|
+
print("md5 after :%s" % md5_after)
|
|
86
|
+
print("md5 一致?", md5_before == md5_after) # True = 逐字节完全相同,最强证据
|
|
84
87
|
|
|
85
88
|
a = Image.open(before).convert("RGB")
|
|
86
89
|
b = Image.open(after).convert("RGB")
|
|
@@ -109,7 +112,7 @@ else:
|
|
|
109
112
|
**两个概念要向读者解释清楚(报告里直接写人话)**:
|
|
110
113
|
|
|
111
114
|
- **「md5 一致」是什么意思**:md5 是把一整个文件算成一段 32 位十六进制指纹,文件里哪怕只改了 1 个 bit,指纹就完全不同。两张 PNG 的 md5 相同 = **逐字节完全相同**,比「像素一样」还强一层(连压缩块、元数据都没变)。
|
|
112
|
-
- **「逐像素相减」是怎么做的**:两张同尺寸的整页图,按坐标一一对应的像素做减法,统计有多少个像素不一样、落在哪一列哪一行。一张 1680
|
|
115
|
+
- **「逐像素相减」是怎么做的**:两张同尺寸的整页图,按坐标一一对应的像素做减法,统计有多少个像素不一样、落在哪一列哪一行。一张 1680×2400 的整页截图有 403 万个像素(1680 × 2400 = 4,032,000),**只要有一个像素颜色变了就会被抓到**。
|
|
113
116
|
|
|
114
117
|
### 第 3 层 · 数据库逐行(绕过前端,最权威)
|
|
115
118
|
|
|
@@ -150,7 +153,7 @@ SELECT provider_id, count(*) FROM provider_model_pricing
|
|
|
150
153
|
|
|
151
154
|
**实例(可直接作为图注模板)**:
|
|
152
155
|
|
|
153
|
-
> 整页 1680×2400
|
|
156
|
+
> 整页 1680×2400 共 403 万像素(4,032,000),**只有 17 个不同**,全部落在 `x=383` 这**一列**、`y=150..166` 这 17 **行**。改动前该处纯白 `(255,255,255)`,改动后是一条 1px 深灰竖线 `(55,65,81)`;左右相邻的 `(382)` 与 `(384)` 前后**都是纯白**。单列、1px 宽、竖直、两侧纯白、位于搜索框内部 —— 只可能是输入框的文本光标,不是数据变化。
|
|
154
157
|
|
|
155
158
|
⚠️ **「左右相邻像素前后都是纯白」这一句是关键**:它排除了「这是一块色斑 / 一个被改动的单元格 / 一段被换掉的文字」。报告里要给出这几个值,让读者能自己下同样的结论。
|
|
156
159
|
|