im0o
|
085b3a56d7
|
Merge branch 't3-filters' into integration
|
2026-09-04 16:40:47 +08:00 |
|
im0o
|
2f87a77992
|
修复滤镜两处问题:type 匹配不再靠 id 拼写、统一边缘格行为
- filters/index.ts 从 build() 实例读出真实 fabric type,导出 FILTER_TYPES 供面板使用
- FilterPanel.vue 改用 FILTER_TYPES[def.id],与注册表 id 命名解耦
- crystallize.ts applyTo2d 不再跳过越界格,越界种子参与取最近并 clamp 采样,与 WebGL 路径一致
|
2026-09-04 16:39:05 +08:00 |
|
 Jz0ojiangandim0o
|
9a60754401
|
contract: FontEntry 加 subfamily,family 改用 name 表的排版族名
注册表值名不是字体身份。实测阿里巴巴普惠体 H:
注册表「阿里巴巴普惠体-H」、nameID 1「阿里巴巴普惠体 H」— 浏览器都解析不到
nameID 16「阿里巴巴普惠体」+ nameID 17「Heavy」— 能解析
subfamily 退回 nameID 2 是有损的:该族五个字重的 nameID 2 全是 Regular。
(cherry picked from commit 44b98102741af90620871156d60edf54326df78d)
|
2026-09-04 16:38:56 +08:00 |
|
 Jz0ojiangandim0o
|
5b46e84a44
|
fix: 背景图沉到最底层,否则盖住先加的文字
addImage 用 canvas.add() 追加,图片落在最上层。浏览器验收时发现
先加文本框再装背景,文字被整块盖住。
(cherry picked from commit 822fd79e1ca2df76c49c1dff33fa5cc0fa01cc93)
|
2026-09-04 16:38:56 +08:00 |
|
im0o
|
9f2b14572d
|
实现滤镜子系统:六种滤镜注册、晶格化滤镜与滤镜面板
- filters/index.ts 注册模糊/亮度/对比度/饱和度/像素化/晶格化六个滤镜
- crystallize.ts 实现抖动网格 Voronoi 晶格化,WebGL 与 Canvas2D 双路径
- FilterPanel.vue 按注册表自动渲染开关与滑杆,rAF 合帧节流 applyFilters
|
2026-09-04 16:03:06 +08:00 |
|
Jz0ojiang
|
95eeb69ff8
|
feat: 骨架——Vite + Vue3 + Fabric v7,左工作区右侧栏
共享外壳与类型契约,四条并行开发线在此之上各自填空:
- types.ts 是唯一的跨线接口,并行期间冻结
- editor/ 画布单例、选中态、尺寸预设与比例锁
- Sidebar 按选中对象切换面板,五个面板位已接好
- fonts/ filters/ sources/ io/ 留桩,各线只改自己目录
导出定 WebP:实测 540x287 PNG 134KB vs 1200x630 WebP 23KB。
字体接口挂在 Vite 中间件上,工具只在 dev 下完整可用。
|
2026-09-04 15:42:27 +08:00 |
|