dsh-pighub 0.3.0 → 0.3.1
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/CHANGELOG.md +7 -0
- package/assets/img/pig-1360.png +0 -0
- package/assets/manifest.json +5 -5
- package/lib/imaging.js +22 -8
- package/lib/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
本项目遵循 [Semantic Versioning](https://semver.org/lang/zh-CN/);每条记录只写「对使用者可见的变化」,
|
|
4
4
|
内部重构不单列。README 只描述项目整体,**版本相关内容一律记在这里**。
|
|
5
5
|
|
|
6
|
+
## [0.3.1] — 2026-11-12
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
|
|
10
|
+
- `pig-1360`(你已笨哭)改用**逐素材规格**:按 subagent 的逐像素测量裁到猪身,删掉显示器/键盘/字幕,把白阈值定在 226(猪身最亮像素 min 通道 225),并开启 `whiteAll` 去掉尾巴卷曲内的封闭白;成品只剩猪 + 3px 深棕描边(512×486,154 KB)。
|
|
11
|
+
- 修掉一个真 bug:`rectOf` 对越界矩形各边独立 clamp,导致「负起点 + 原宽度」被扩成整帧,会把图整块清空(`pig-1360` 一度输出 854 B 全透明)。已改为与帧求交。
|
|
12
|
+
|
|
6
13
|
## [0.3.0] — 2026-11-12(未发布)
|
|
7
14
|
|
|
8
15
|
### Changed
|
package/assets/img/pig-1360.png
CHANGED
|
Binary file
|
package/assets/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"assetVersion": "2026.11.12",
|
|
3
|
-
"frozenAt": "2026-11-12T09:
|
|
3
|
+
"frozenAt": "2026-11-12T09:39:14.767Z",
|
|
4
4
|
"policy": "素材在构建期处理完并随包分发;运行时只读本地文件,不链接、不请求素材库。",
|
|
5
5
|
"attribution": "素材来自 PigHub 社区图库及其开源镜像,版权归原权利人;本项目仅做逐图判定与裁切,署名见 assets/ATTRIBUTION.md。",
|
|
6
6
|
"counts": {
|
|
@@ -186,11 +186,11 @@
|
|
|
186
186
|
"note": "电脑前场景卡:卡片白底去掉(里面塞着图,密度高),屏幕里的白清单是信息白,保留。 去白口径:白底一律去掉,仅保留「承载信息的白」(内容稀疏的气泡/清单)。",
|
|
187
187
|
"vector": false,
|
|
188
188
|
"file": "assets/img/pig-1360.png",
|
|
189
|
-
"bytes":
|
|
190
|
-
"sha256": "
|
|
189
|
+
"bytes": 153976,
|
|
190
|
+
"sha256": "6052eafe02173dbac7bd09c20478c0fbd5c23bff5647753a0d21c183c546c2f3",
|
|
191
191
|
"size": {
|
|
192
|
-
"width":
|
|
193
|
-
"height":
|
|
192
|
+
"width": 697,
|
|
193
|
+
"height": 662
|
|
194
194
|
},
|
|
195
195
|
"source": {
|
|
196
196
|
"url": "https://pighub.top/images/%E4%BD%A0%E5%B7%B2%E7%AC%A8%E5%93%AD_1.jpg",
|
package/lib/imaging.js
CHANGED
|
@@ -365,14 +365,13 @@ export function contentBounds(frame, pad) {
|
|
|
365
365
|
/** 归一化矩形 → 像素矩形(相对被裁后的图)。 */
|
|
366
366
|
function rectOf(frame, rect) {
|
|
367
367
|
const [x, y, w, h] = rect;
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
};
|
|
368
|
+
// 与帧求交:起点可能落在帧外(work 里的框按原图坐标给,裁切后就可能越界),
|
|
369
|
+
// 越界时必须同时收窄宽度,否则「负起点 + 原宽度」会扩成整帧,把图整块清掉。
|
|
370
|
+
const x0 = Math.max(0, Math.round(frame.width * x));
|
|
371
|
+
const y0 = Math.max(0, Math.round(frame.height * y));
|
|
372
|
+
const x1 = Math.min(frame.width, Math.round(frame.width * (x + w)));
|
|
373
|
+
const y1 = Math.min(frame.height, Math.round(frame.height * (y + h)));
|
|
374
|
+
return { x: x0, y: y0, w: Math.max(1, x1 - x0), h: Math.max(1, y1 - y0) };
|
|
376
375
|
}
|
|
377
376
|
|
|
378
377
|
/** 文字框:这些区域里的白**强制保留**(对白气泡、屏幕清单)。source 是去白前的帧。 */
|
|
@@ -446,3 +445,18 @@ export function addOutline(frame, width, color) {
|
|
|
446
445
|
}
|
|
447
446
|
return { width: w, height: h, data: new Uint8Array(out) };
|
|
448
447
|
}
|
|
448
|
+
|
|
449
|
+
/**
|
|
450
|
+
* 删掉**所有**近白像素(不区分是否与四边连通)。
|
|
451
|
+
*
|
|
452
|
+
* 什么时候用:素材已经被裁成「纯猪贴纸」,画面里唯一该透明的就是白——此时尾巴卷曲内侧
|
|
453
|
+
* 那种封闭白也应当删(默认的「只删四边连通白」会留着它)。对含信息的场景图不要用。
|
|
454
|
+
*/
|
|
455
|
+
export function stripAllWhite(frame, whiteMin) {
|
|
456
|
+
const { width, height, data } = frame;
|
|
457
|
+
for (let i = 0; i < width * height; i += 1) {
|
|
458
|
+
if (data[i * 4 + 3] < 24) continue;
|
|
459
|
+
if (data[i * 4] >= whiteMin && data[i * 4 + 1] >= whiteMin && data[i * 4 + 2] >= whiteMin) data[i * 4 + 3] = 0;
|
|
460
|
+
}
|
|
461
|
+
return frame;
|
|
462
|
+
}
|
package/lib/index.js
CHANGED