docs(memory): 单题卡二维码 5px 与不落盘的决定
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
# 2026-10-23
|
||||
|
||||
## 单题分享卡二维码提到 5px/模块(`310f851`)
|
||||
|
||||
用户决定「单题一起做」,同时否掉方案 5(结果落盘/R2)——理由:功能使用率不高,不值得大动干戈。
|
||||
|
||||
- 单题卡卡片 210×255 放不下 5px 模块(37 模块要 185px):`QQRCardW` 236、`QQRCardH` 300、
|
||||
`QQRSize` 190。X 由 `QContentX+QContentW-QQRCardW` 派生 → 679,Y 居中 → 120。
|
||||
- `QTextMaxW` / `qLeftClip` 都从 `QQRCardX` 派生,左栏自动收窄 26px,无需另改。
|
||||
- 抽了 `drawQuestionQRCard(canvas, user, question, logo, fontCtx)`(handler 只剩调用),
|
||||
这样测试能直接渲染整卡:`TestQuestionQRCardLayout` 断言正方形 / 模块≥5 / 四边留白≥20 /
|
||||
居中≤1px,`TEST_PREVIEW=1` 出 `outputs/sharecard-preview/question-card.png`。
|
||||
- 实测:二维码 185px、居中偏差 0.5px、上下留白 34px;gozxing 在 960/720/480/320 全通过。
|
||||
变异验证:`QQRSize` 改回 150 → "QR module is 4px, want >=5" FAIL。
|
||||
- 未做(用户明确不要):分享卡结果落盘/上 R2。进程内 LRU 仍是 16 条 + TTL 1h,
|
||||
冷渲染成本接受现状。
|
||||
@@ -17,7 +17,9 @@
|
||||
把 4 模块静默区画进图里 + 再居中留白,会让 165px 目标只剩 111px(3px/模块)——这是曾经的回归。
|
||||
- `perModule = size / modules` 向下取整,符号 = `modules*perModule`;**调用方必须用 `qr.Bounds().Dx()`
|
||||
排版与居中**,不能假设等于传入的 size。
|
||||
- 单题卡 `QQRSize = 150`(37 模块 → 4px);箱子卡 `QRCodeSize = 190`(37 模块 → 185px = 5px)。
|
||||
- 单题卡 `QQRSize = 190`(37 模块 → 185px = 5px,卡片 236×300 居中于 679,120);
|
||||
箱子卡 `QRCodeSize = 190`(37 模块 → 185px = 5px,卡片 270×335)。
|
||||
- 单题卡的二维码卡片绘制在 `drawQuestionQRCard`(handler 只是调用),测试可直接出图。
|
||||
- 卡内垂直间距在 4px 栅格上:`24 / 17 / 20 / 1 / 20 / 16`,总高按链接行数算,整块垂直居中。
|
||||
|
||||
## 模块像素:唯一的硬指标
|
||||
|
||||
Reference in New Issue
Block a user