diff --git a/apps/wiki/package.json b/apps/wiki/package.json index 01aa895..f23d94e 100644 --- a/apps/wiki/package.json +++ b/apps/wiki/package.json @@ -10,7 +10,7 @@ "build": "next build && esbuild src/worker.ts --bundle --platform=node --format=cjs --external:pg-native --external:playwright-core --outfile=dist/worker.cjs && esbuild scripts/bootstrap.ts --bundle --platform=node --format=cjs --external:pg-native --external:playwright-core --outfile=dist/bootstrap.cjs && esbuild scripts/publish-learning-series.ts --bundle --platform=node --format=cjs --external:pg-native --external:playwright-core --outfile=dist/publish-learning-series.cjs && node scripts/prepare-standalone.mjs", "start": "next start", "typecheck": "next typegen && tsc --noEmit", - "test": "tsx --test tests/api-documentation.test.ts tests/health.test.ts tests/model.test.ts tests/learning-series.test.ts tests/skill-docs.test.ts tests/wiki.test.ts tests/explore.test.ts tests/preview.test.ts tests/note-markdown.test.tsx", + "test": "tsx --test tests/api-documentation.test.ts tests/health.test.ts tests/model.test.ts tests/learning-series.test.ts tests/skill-docs.test.ts tests/wiki.test.ts tests/explore.test.ts tests/preview.test.ts tests/note-markdown.test.tsx tests/layout-reference.test.tsx", "test:smoke": "node scripts/smoke.mjs", "storage:prepare": "tsx scripts/bootstrap.ts", "content:publish-learning": "tsx scripts/publish-learning-series.ts", diff --git a/apps/wiki/public/layout-recipes/annotation-lines.html b/apps/wiki/public/layout-recipes/annotation-lines.html deleted file mode 100644 index 94c958f..0000000 --- a/apps/wiki/public/layout-recipes/annotation-lines.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - -细线标注与技术图录 · 排版示例 - - - -
- - -A / 表面结构示意 -

细节的尺度

-

标注用于解释真实细节。 -本例色块为结构占位,并非实物测量。

-
FORM / STUDIES2026 · 10
-
- - diff --git a/apps/wiki/public/layout-recipes/annotation-lines.png b/apps/wiki/public/layout-recipes/annotation-lines.png deleted file mode 100644 index ded64d8..0000000 Binary files a/apps/wiki/public/layout-recipes/annotation-lines.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/diagonal-cards.html b/apps/wiki/public/layout-recipes/diagonal-cards.html deleted file mode 100644 index 99d9167..0000000 --- a/apps/wiki/public/layout-recipes/diagonal-cards.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - -轻斜卡片与拼贴 · 排版示例 - - - -
- - -

纸上的实验

-

材料笔记 / 两张卡片的轻微偏移

-
FORM / STUDIES2026 · 09
-
- - diff --git a/apps/wiki/public/layout-recipes/diagonal-cards.png b/apps/wiki/public/layout-recipes/diagonal-cards.png deleted file mode 100644 index e8426f3..0000000 Binary files a/apps/wiki/public/layout-recipes/diagonal-cards.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/editorial-serif.html b/apps/wiki/public/layout-recipes/editorial-serif.html deleted file mode 100644 index f92f34a..0000000 --- a/apps/wiki/public/layout-recipes/editorial-serif.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - -衬线刊头与杂志栏 · 排版示例 - - - -
-

Quiet
Design

- - -

从一块留白开始,观察材料、光线与文字之间的关系。

-
FORM / STUDIES2026 · 07
-
- - diff --git a/apps/wiki/public/layout-recipes/editorial-serif.png b/apps/wiki/public/layout-recipes/editorial-serif.png deleted file mode 100644 index d15e75f..0000000 Binary files a/apps/wiki/public/layout-recipes/editorial-serif.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/horizontal-band.html b/apps/wiki/public/layout-recipes/horizontal-band.html deleted file mode 100644 index e14d073..0000000 --- a/apps/wiki/public/layout-recipes/horizontal-band.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - -横向色带与断层 · 排版示例 - - - -
- -

留白练习

-

CHAPTER
ZERO

-

以一道横向色带, -建立章节之间的停顿。

-
FORM / STUDIES2026 · 08
-
- - diff --git a/apps/wiki/public/layout-recipes/horizontal-band.png b/apps/wiki/public/layout-recipes/horizontal-band.png deleted file mode 100644 index e980e78..0000000 Binary files a/apps/wiki/public/layout-recipes/horizontal-band.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/modular-grid.html b/apps/wiki/public/layout-recipes/modular-grid.html deleted file mode 100644 index 219c579..0000000 --- a/apps/wiki/public/layout-recipes/modular-grid.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - -模块网格与索引 · 排版示例 - - - -
-

视觉档案

-
01 / 观察
02 / 结构
03 / 材料
04 / 字体
05 / 色彩
06 / 留白
-

INDEX / SIX DESIGN STUDIES

-
FORM / STUDIES2026 · 06
-
- - diff --git a/apps/wiki/public/layout-recipes/modular-grid.png b/apps/wiki/public/layout-recipes/modular-grid.png deleted file mode 100644 index ec27f3e..0000000 Binary files a/apps/wiki/public/layout-recipes/modular-grid.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/monumental-type.html b/apps/wiki/public/layout-recipes/monumental-type.html deleted file mode 100644 index e78fe81..0000000 --- a/apps/wiki/public/layout-recipes/monumental-type.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - -巨字与裁切 · 排版示例 - - - -
- - -

形式与留白

-

让一个词成为画面的重心。 -DESIGN STUDIES / 2026

-
FORM / STUDIES2026 · 03
-
- - diff --git a/apps/wiki/public/layout-recipes/monumental-type.png b/apps/wiki/public/layout-recipes/monumental-type.png deleted file mode 100644 index 58a5867..0000000 Binary files a/apps/wiki/public/layout-recipes/monumental-type.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/offset-panels.html b/apps/wiki/public/layout-recipes/offset-panels.html deleted file mode 100644 index 6066cd4..0000000 --- a/apps/wiki/public/layout-recipes/offset-panels.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - -错位双矩形 · 排版示例 - - - -
- - -

秩序之间

-

以留白建立关系, -让视线缓慢移动。

-
FORM / STUDIES2026 · 01
-
- - diff --git a/apps/wiki/public/layout-recipes/offset-panels.png b/apps/wiki/public/layout-recipes/offset-panels.png deleted file mode 100644 index 76f55a9..0000000 Binary files a/apps/wiki/public/layout-recipes/offset-panels.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/orbital-rings.html b/apps/wiki/public/layout-recipes/orbital-rings.html deleted file mode 100644 index 9647d2a..0000000 --- a/apps/wiki/public/layout-recipes/orbital-rings.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - -同心圆与轨道 · 排版示例 - - - -
- -

周而复始

-

时间的形状 / ANNUAL REVIEW / 2026

-
FORM / STUDIES2026 · 04
-
- - diff --git a/apps/wiki/public/layout-recipes/orbital-rings.png b/apps/wiki/public/layout-recipes/orbital-rings.png deleted file mode 100644 index 4e45e4b..0000000 Binary files a/apps/wiki/public/layout-recipes/orbital-rings.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/organic-ellipse.html b/apps/wiki/public/layout-recipes/organic-ellipse.html deleted file mode 100644 index 06ac59f..0000000 --- a/apps/wiki/public/layout-recipes/organic-ellipse.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - -有机椭圆与弧面 · 排版示例 - - - -
- -

缓慢生长

-

一条曲线, -一处停顿。

-
FORM / STUDIES2026 · 05
-
- - diff --git a/apps/wiki/public/layout-recipes/organic-ellipse.png b/apps/wiki/public/layout-recipes/organic-ellipse.png deleted file mode 100644 index e935c09..0000000 Binary files a/apps/wiki/public/layout-recipes/organic-ellipse.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/router.png b/apps/wiki/public/layout-recipes/router.png deleted file mode 100644 index d794b54..0000000 Binary files a/apps/wiki/public/layout-recipes/router.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/split-contrast.html b/apps/wiki/public/layout-recipes/split-contrast.html deleted file mode 100644 index 55117a7..0000000 --- a/apps/wiki/public/layout-recipes/split-contrast.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - -双区对照与大留白 · 排版示例 - - - -
- -

看见留白

-

读懂秩序

-

从空间到关系 / TWO PERSPECTIVES

-
FORM / STUDIES2026 · 11
-
- - diff --git a/apps/wiki/public/layout-recipes/split-contrast.png b/apps/wiki/public/layout-recipes/split-contrast.png deleted file mode 100644 index 67d2a98..0000000 Binary files a/apps/wiki/public/layout-recipes/split-contrast.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/type-frame.html b/apps/wiki/public/layout-recipes/type-frame.html deleted file mode 100644 index 2fd13e9..0000000 --- a/apps/wiki/public/layout-recipes/type-frame.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - -四角字框与中心场 · 排版示例 - - - -
-

高级排版 / FORM STUDIES

- - -

四角建立边界,中央保留呼吸。

-
FORM / STUDIES2026 · 12
-
- - diff --git a/apps/wiki/public/layout-recipes/type-frame.png b/apps/wiki/public/layout-recipes/type-frame.png deleted file mode 100644 index 45ee890..0000000 Binary files a/apps/wiki/public/layout-recipes/type-frame.png and /dev/null differ diff --git a/apps/wiki/public/layout-recipes/vertical-rail.html b/apps/wiki/public/layout-recipes/vertical-rail.html deleted file mode 100644 index 25cd804..0000000 --- a/apps/wiki/public/layout-recipes/vertical-rail.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - - -窄轨竖排 · 排版示例 - - - -
- -

静物的秩序

-

空间研究 / 第二辑 / 2026

-
FORM / STUDIES2026 · 02
-
- - diff --git a/apps/wiki/public/layout-recipes/vertical-rail.png b/apps/wiki/public/layout-recipes/vertical-rail.png deleted file mode 100644 index b83cb7f..0000000 Binary files a/apps/wiki/public/layout-recipes/vertical-rail.png and /dev/null differ diff --git a/apps/wiki/public/layout-reference/ReferenceLayout.tsx b/apps/wiki/public/layout-reference/ReferenceLayout.tsx new file mode 100644 index 0000000..951bf18 --- /dev/null +++ b/apps/wiki/public/layout-reference/ReferenceLayout.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import type {CSSProperties} from 'react'; +import layouts from './manifest.json'; +export const layoutIds = ['ref-01','ref-02','ref-03','ref-04','ref-05','ref-06','ref-07','ref-08','ref-09','ref-10','ref-11','ref-12','ref-13','ref-14','ref-15','ref-16','ref-17','ref-18','ref-19','ref-20','ref-21','ref-22','ref-23','ref-24','ref-25','ref-26','ref-27'] as const; +export type LayoutId=typeof layoutIds[number]; +export type Replacements={text?:Record;images?:Record}; +export function getLayout(id:string){return layouts.find(layout=>layout.id===id)} +export function validateReplacements(id:string,replacements:Replacements){ + const layout=getLayout(id);if(!layout)throw Error(`Unknown layout ID: ${id}`); + for(const[kind,values]of [['text',replacements.text],['image',replacements.images]] as const)for(const key of Object.keys(values||{})){ + if(!layout.elements.some(e=>key===id+'/'+e.id&&e.kind===kind))throw Error(`Component does not belong to ${id} or has the wrong kind: ${key}`); + }return layout; +} +function textStyle(text:string,box:number[],width:number,direction:string):CSSProperties{ + const vertical=direction==='vertical'||direction==='rotated',lines=text.split('\n'),units=Math.max(...lines.map(line=>Array.from(line).reduce((n,c)=>n+(/[\u3400-\u9fff]/.test(c)?1:.56),0)),1); + const size=vertical?Math.min(box[2],box[3]/Math.max(text.length,1)):Math.min(box[3]/(lines.length*1.1),box[2]/units); + return {fontSize:`${size/width*100}cqw`,lineHeight:1.1,whiteSpace:'pre-wrap',writingMode:vertical?'vertical-rl':undefined,textOrientation:direction==='rotated'?'sideways':undefined,transform:direction==='angled'?'rotate(-12deg)':undefined,transformOrigin:'left center',color:'#222',fontFamily:'"Songti SC", "Noto Serif CJK SC", serif'}; +} +/** Untouched mode reconstructs typed source layers; replacement mode keeps the exact preset geometry. */ +export default function ReferenceLayout({id,text={},images={},assetBase=''}:{id:LayoutId;text?:Record;images?:Record;assetBase?:string}){ + const layout=validateReplacements(id,{text,images}),src=(url:string)=>assetBase+url; + return
+
+ + {layout.elements.map(e=>{ + const[x,y,w,h]=e.box,key=id+'/'+e.id,position:CSSProperties={position:'absolute',left:x/layout.width*100+'%',top:y/layout.height*100+'%',width:w/layout.width*100+'%',height:h/layout.height*100+'%',zIndex:e.kind==='text'?3:e.kind==='decoration'?2:1}; + if(e.kind==='text'&&Object.hasOwn(text,key)){ + if(e.direction==='curved')throw Error(`Curved text requires the source-specific SVG path: ${key}`); + return + {'underlay' in e&&} + {text[key]} + ; + } + if(e.kind==='image'&&Object.hasOwn(images,key))return {e.role}; + return {e.kind==='text'?e.text||`${e.role}:原字形保真,内容未辨识`:''}; + })} +
+
; +} diff --git a/apps/wiki/public/layout-reference/index.html b/apps/wiki/public/layout-reference/index.html new file mode 100644 index 0000000..b2db0d2 --- /dev/null +++ b/apps/wiki/public/layout-reference/index.html @@ -0,0 +1 @@ +27 张原图版面索引

27 张原图版面 · 一一对应

按原图从上到下、每行从左到右编号,排除左侧说明栏。点击每张可分开检查文字、图片占位/色块与装饰。

查看编号原图 · 机器索引

diff --git a/apps/wiki/public/layout-reference/index.json b/apps/wiki/public/layout-reference/index.json new file mode 100644 index 0000000..a27fcdd --- /dev/null +++ b/apps/wiki/public/layout-reference/index.json @@ -0,0 +1,466 @@ +{ + "version": 2, + "sourceSha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "numbering": "row-major; exclude left title banner", + "layouts": [ + { + "id": "ref-01", + "name": "双矩形错位与左下说明", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 135, + 46, + 113, + 171 + ], + "row": 1, + "column": 2 + }, + "manifest": "/layout-reference/ref-01/manifest.json" + }, + { + "id": "ref-02", + "name": "四格图片列与双列竖题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 46, + 112, + 171 + ], + "row": 1, + "column": 3 + }, + "manifest": "/layout-reference/ref-02/manifest.json" + }, + { + "id": "ref-03", + "name": "左上标题与右下错位图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 46, + 114, + 173 + ], + "row": 1, + "column": 4 + }, + "manifest": "/layout-reference/ref-03/manifest.json" + }, + { + "id": "ref-04", + "name": "满版灰底椭圆与右侧白字", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 497, + 45, + 113, + 173 + ], + "row": 1, + "column": 5 + }, + "manifest": "/layout-reference/ref-04/manifest.json" + }, + { + "id": "ref-05", + "name": "五圆出血与右侧竖排大字", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 617, + 45, + 112, + 172 + ], + "row": 1, + "column": 6 + }, + "manifest": "/layout-reference/ref-05/manifest.json" + }, + { + "id": "ref-06", + "name": "满高左图与右侧窄栏", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 134, + 228, + 114, + 172 + ], + "row": 2, + "column": 2 + }, + "manifest": "/layout-reference/ref-06/manifest.json" + }, + { + "id": "ref-07", + "name": "同心圆图位与底部年份", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 228, + 112, + 172 + ], + "row": 2, + "column": 3 + }, + "manifest": "/layout-reference/ref-07/manifest.json" + }, + { + "id": "ref-08", + "name": "双层满宽图与字距横栏", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 227, + 113, + 173 + ], + "row": 2, + "column": 4 + }, + "manifest": "/layout-reference/ref-08/manifest.json" + }, + { + "id": "ref-09", + "name": "左侧分字标题与右侧长图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 497, + 227, + 113, + 173 + ], + "row": 2, + "column": 5 + }, + "manifest": "/layout-reference/ref-09/manifest.json" + }, + { + "id": "ref-10", + "name": "半页深底与裁切英文 blue", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 616, + 227, + 113, + 173 + ], + "row": 2, + "column": 6 + }, + "manifest": "/layout-reference/ref-10/manifest.json" + }, + { + "id": "ref-11", + "name": "左上双行标题与右下主图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 135, + 410, + 114, + 173 + ], + "row": 3, + "column": 2 + }, + "manifest": "/layout-reference/ref-11/manifest.json" + }, + { + "id": "ref-12", + "name": "三图模块与左侧分散字框", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 409, + 112, + 173 + ], + "row": 3, + "column": 3 + }, + "manifest": "/layout-reference/ref-12/manifest.json" + }, + { + "id": "ref-13", + "name": "横题与右侧出血扁椭圆", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 410, + 114, + 173 + ], + "row": 3, + "column": 4 + }, + "manifest": "/layout-reference/ref-13/manifest.json" + }, + { + "id": "ref-14", + "name": "大矩形与小方图及居中横题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 497, + 409, + 113, + 174 + ], + "row": 3, + "column": 5 + }, + "manifest": "/layout-reference/ref-14/manifest.json" + }, + { + "id": "ref-15", + "name": "英文双行刊头与四分之一圆图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 617, + 409, + 112, + 173 + ], + "row": 3, + "column": 6 + }, + "manifest": "/layout-reference/ref-15/manifest.json" + }, + { + "id": "ref-16", + "name": "上下灰阶色带与底部白区", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 15, + 592, + 113, + 173 + ], + "row": 4, + "column": 1 + }, + "manifest": "/layout-reference/ref-16/manifest.json" + }, + { + "id": "ref-17", + "name": "英文刊头与圆形叠标及窄栏", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 135, + 591, + 113, + 174 + ], + "row": 4, + "column": 2 + }, + "manifest": "/layout-reference/ref-17/manifest.json" + }, + { + "id": "ref-18", + "name": "上大图与下方英文双行", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 591, + 113, + 174 + ], + "row": 4, + "column": 3 + }, + "manifest": "/layout-reference/ref-18/manifest.json" + }, + { + "id": "ref-19", + "name": "四角大字与中央双圆竖题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 593, + 113, + 171 + ], + "row": 4, + "column": 4 + }, + "manifest": "/layout-reference/ref-19/manifest.json" + }, + { + "id": "ref-20", + "name": "右上大弧面与左下圆形标题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 496, + 592, + 114, + 173 + ], + "row": 4, + "column": 5 + }, + "manifest": "/layout-reference/ref-20/manifest.json" + }, + { + "id": "ref-21", + "name": "右侧旋转英文与节点方图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 616, + 592, + 114, + 173 + ], + "row": 4, + "column": 6 + }, + "manifest": "/layout-reference/ref-21/manifest.json" + }, + { + "id": "ref-22", + "name": "三段斜切背景与右侧白字", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 15, + 774, + 113, + 173 + ], + "row": 5, + "column": 1 + }, + "manifest": "/layout-reference/ref-22/manifest.json" + }, + { + "id": "ref-23", + "name": "上方方图与中部大写英文", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 134, + 775, + 114, + 172 + ], + "row": 5, + "column": 2 + }, + "manifest": "/layout-reference/ref-23/manifest.json" + }, + { + "id": "ref-24", + "name": "斜排中文与倾斜装饰线框", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 775, + 113, + 172 + ], + "row": 5, + "column": 3 + }, + "manifest": "/layout-reference/ref-24/manifest.json" + }, + { + "id": "ref-25", + "name": "左侧竖题与右下方形主图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 774, + 113, + 173 + ], + "row": 5, + "column": 4 + }, + "manifest": "/layout-reference/ref-25/manifest.json" + }, + { + "id": "ref-26", + "name": "三行英文与曲线指引小图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 496, + 774, + 114, + 173 + ], + "row": 5, + "column": 5 + }, + "manifest": "/layout-reference/ref-26/manifest.json" + }, + { + "id": "ref-27", + "name": "对角双区与斜向文字带", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 618, + 774, + 112, + 172 + ], + "row": 5, + "column": 6 + }, + "manifest": "/layout-reference/ref-27/manifest.json" + } + ] +} diff --git a/apps/wiki/public/layout-reference/layout-reference-toolkit.zip b/apps/wiki/public/layout-reference/layout-reference-toolkit.zip new file mode 100644 index 0000000..5c08450 Binary files /dev/null and b/apps/wiki/public/layout-reference/layout-reference-toolkit.zip differ diff --git a/apps/wiki/public/layout-reference/manifest.json b/apps/wiki/public/layout-reference/manifest.json new file mode 100644 index 0000000..9a4d0c4 --- /dev/null +++ b/apps/wiki/public/layout-reference/manifest.json @@ -0,0 +1,4792 @@ +[ + { + "id": "ref-01", + "name": "双矩形错位与左下说明", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 135, + 46, + 113, + 171 + ], + "row": 1, + "column": 2 + }, + "width": 113, + "height": 171, + "reference": "/layout-reference/ref-01/source.png", + "annotated": "/layout-reference/ref-01/annotated.png", + "background": "/layout-reference/ref-01/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "品牌字标", + "box": [ + 8, + 20, + 36, + 15 + ], + "text": "BULUBLUE", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-01/T01.png", + "pixels": 274, + "underlay": "/layout-reference/ref-01/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左下说明", + "box": [ + 7, + 121, + 44, + 34 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-01/T02.png", + "pixels": 468, + "underlay": "/layout-reference/ref-01/T02-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "上方主图", + "box": [ + 24, + 14, + 77, + 71 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-01/I01.png", + "pixels": 5259, + "mask": "/layout-reference/ref-01/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "下方副图", + "box": [ + 42, + 89, + 59, + 70 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-01/I02.png", + "pixels": 4097, + "mask": "/layout-reference/ref-01/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "顶部短线", + "box": [ + 41, + 4, + 29, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-01/D01.png", + "pixels": 55 + }, + { + "id": "D02", + "kind": "decoration", + "role": "底部横线", + "box": [ + 29, + 158, + 58, + 8 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-01/D02.png", + "pixels": 167 + } + ], + "ocr": [ + { + "box": [ + 0.07374631491782553, + 0.12865497059314956, + 0.31268436578171094, + 0.06237816764132553 + ], + "confidence": 0.5, + "text": "BULUBLUE" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19323, + "unreadableText": 1 + } + }, + { + "id": "ref-02", + "name": "四格图片列与双列竖题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 46, + 112, + 171 + ], + "row": 1, + "column": 3 + }, + "width": 112, + "height": 171, + "reference": "/layout-reference/ref-02/source.png", + "annotated": "/layout-reference/ref-02/annotated.png", + "background": "/layout-reference/ref-02/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧主标题", + "box": [ + 91, + 0, + 20, + 126 + ], + "text": "蓝羽毛版式设计系列", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-02/T01.png", + "pixels": 1348, + "underlay": "/layout-reference/ref-02/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "中间副标题", + "box": [ + 70, + 0, + 19, + 84 + ], + "text": "版式灵感收藏", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-02/T02.png", + "pixels": 776, + "underlay": "/layout-reference/ref-02/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "图片一图注", + "box": [ + 0, + 34, + 20, + 4 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-02/T03.png", + "pixels": 28, + "underlay": "/layout-reference/ref-02/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "图片二图注", + "box": [ + 0, + 71, + 29, + 4 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-02/T04.png", + "pixels": 74, + "underlay": "/layout-reference/ref-02/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "图片三图注", + "box": [ + 2, + 132, + 37, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-02/T05.png", + "pixels": 39, + "underlay": "/layout-reference/ref-02/T05-underlay.png" + }, + { + "id": "T06", + "kind": "text", + "role": "右下说明", + "box": [ + 50, + 81, + 32, + 57 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-02/T06.png", + "pixels": 348, + "underlay": "/layout-reference/ref-02/T06-underlay.png" + }, + { + "id": "T07", + "kind": "text", + "role": "右下品牌与说明", + "box": [ + 51, + 143, + 51, + 14 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-02/T07.png", + "pixels": 483, + "underlay": "/layout-reference/ref-02/T07-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "图片一", + "box": [ + 4, + 3, + 40, + 30 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/I01.png", + "pixels": 1198, + "mask": "/layout-reference/ref-02/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "图片二", + "box": [ + 2, + 38, + 44, + 33 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/I02.png", + "pixels": 1443, + "mask": "/layout-reference/ref-02/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "图片三", + "box": [ + 2, + 74, + 44, + 56 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/I03.png", + "pixels": 2421, + "mask": "/layout-reference/ref-02/I03-mask.png" + }, + { + "id": "I04", + "kind": "image", + "role": "图片四", + "box": [ + 2, + 135, + 44, + 29 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/I04.png", + "pixels": 1276, + "mask": "/layout-reference/ref-02/I04-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "分栏细线", + "box": [ + 65, + 2, + 2, + 72 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/D01.png", + "pixels": 143 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右下横线组", + "box": [ + 50, + 158, + 57, + 12 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/D02.png", + "pixels": 407 + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19152, + "unreadableText": 5 + } + }, + { + "id": "ref-03", + "name": "左上标题与右下错位图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 46, + 114, + 173 + ], + "row": 1, + "column": 4 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-03/source.png", + "annotated": "/layout-reference/ref-03/annotated.png", + "background": "/layout-reference/ref-03/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "主标题", + "box": [ + 0, + 0, + 45, + 20 + ], + "text": "蓝羽毛", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-03/T01.png", + "pixels": 372, + "underlay": "/layout-reference/ref-03/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "右上说明", + "box": [ + 80, + 22, + 29, + 23 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-03/T02.png", + "pixels": 359, + "underlay": "/layout-reference/ref-03/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "编号", + "box": [ + 100, + 48, + 8, + 7 + ], + "text": "01", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-03/T03.png", + "pixels": 39, + "underlay": "/layout-reference/ref-03/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "左下信息两列", + "box": [ + 4, + 118, + 37, + 33 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-03/T04.png", + "pixels": 353, + "underlay": "/layout-reference/ref-03/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左上主图", + "box": [ + 4, + 22, + 75, + 82 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-03/I01.png", + "pixels": 6006, + "mask": "/layout-reference/ref-03/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "右下副图", + "box": [ + 45, + 107, + 63, + 48 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-03/I02.png", + "pixels": 3004, + "mask": "/layout-reference/ref-03/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "斜引线", + "box": [ + 80, + 49, + 18, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-03/D01.png", + "pixels": 38 + }, + { + "id": "D02", + "kind": "decoration", + "role": "底部左短线", + "box": [ + 24, + 164, + 13, + 4 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-03/D02.png", + "pixels": 52 + }, + { + "id": "D03", + "kind": "decoration", + "role": "底部右短线", + "box": [ + 79, + 163, + 16, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-03/D03.png", + "pixels": 65 + } + ], + "ocr": [ + { + "box": [ + 0.0221329192553819, + 0.02865017716183693, + 0.3329271461531433, + 0.08913510199456776 + ], + "confidence": 0.5, + "text": "蓝羽毛" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 2 + } + }, + { + "id": "ref-04", + "name": "满版灰底椭圆与右侧白字", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 497, + 45, + 113, + 173 + ], + "row": 1, + "column": 5 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-04/source.png", + "annotated": "/layout-reference/ref-04/annotated.png", + "background": "/layout-reference/ref-04/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧竖向标题", + "box": [ + 80, + 4, + 22, + 54 + ], + "text": "蓝羽毛", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-04/T01.png", + "pixels": 674, + "underlay": "/layout-reference/ref-04/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "右下竖向标题", + "box": [ + 79, + 104, + 28, + 45 + ], + "text": "版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-04/T02.png", + "pixels": 831, + "underlay": "/layout-reference/ref-04/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "椭圆左沿弧形微字", + "box": [ + 12, + 21, + 23, + 109 + ], + "text": null, + "direction": "curved", + "reading": "unreadable", + "asset": "/layout-reference/ref-04/T03.png", + "pixels": 487, + "underlay": "/layout-reference/ref-04/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右侧辅助小字", + "box": [ + 83, + 82, + 20, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-04/T04.png", + "pixels": 39, + "underlay": "/layout-reference/ref-04/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "中央倾斜椭圆图位", + "box": [ + 11, + 16, + 92, + 143 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-04/I01.png", + "pixels": 9110, + "mask": "/layout-reference/ref-04/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左上方块与短线", + "box": [ + 3, + 8, + 12, + 13 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-04/D01.png", + "pixels": 105 + }, + { + "id": "D02", + "kind": "decoration", + "role": "左下阶梯线组", + "box": [ + 3, + 132, + 29, + 23 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-04/D02.png", + "pixels": 258 + }, + { + "id": "D03", + "kind": "decoration", + "role": "底部细线", + "box": [ + 4, + 167, + 48, + 1 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-04/D03.png", + "pixels": 48 + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 2 + } + }, + { + "id": "ref-05", + "name": "五圆出血与右侧竖排大字", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 617, + 45, + 112, + 172 + ], + "row": 1, + "column": 6 + }, + "width": 112, + "height": 172, + "reference": "/layout-reference/ref-05/source.png", + "annotated": "/layout-reference/ref-05/annotated.png", + "background": "/layout-reference/ref-05/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧大标题", + "box": [ + 72, + 71, + 28, + 99 + ], + "text": "蓝羽毛", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-05/T01.png", + "pixels": 1148, + "underlay": "/layout-reference/ref-05/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "右侧细标题", + "box": [ + 100, + 72, + 11, + 90 + ], + "text": "版式设计 设计灵感", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-05/T02.png", + "pixels": 487, + "underlay": "/layout-reference/ref-05/T02-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左上出血圆", + "box": [ + 1, + 5, + 44, + 57 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/I01.png", + "pixels": 2144, + "mask": "/layout-reference/ref-05/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "右上出血圆", + "box": [ + 56, + 1, + 54, + 44 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/I02.png", + "pixels": 2070, + "mask": "/layout-reference/ref-05/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "中部圆", + "box": [ + 46, + 44, + 42, + 42 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/I03.png", + "pixels": 1302, + "mask": "/layout-reference/ref-05/I03-mask.png" + }, + { + "id": "I04", + "kind": "image", + "role": "左中小圆", + "box": [ + 3, + 73, + 38, + 37 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/I04.png", + "pixels": 1107, + "mask": "/layout-reference/ref-05/I04-mask.png" + }, + { + "id": "I05", + "kind": "image", + "role": "左下出血圆", + "box": [ + 1, + 119, + 66, + 50 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/I05.png", + "pixels": 2892, + "mask": "/layout-reference/ref-05/I05-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "中下竖线组", + "box": [ + 47, + 106, + 24, + 43 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/D01.png", + "pixels": 286 + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19264, + "unreadableText": 0 + } + }, + { + "id": "ref-06", + "name": "满高左图与右侧窄栏", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 134, + 228, + 114, + 172 + ], + "row": 2, + "column": 2 + }, + "width": 114, + "height": 172, + "reference": "/layout-reference/ref-06/source.png", + "annotated": "/layout-reference/ref-06/annotated.png", + "background": "/layout-reference/ref-06/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧竖向主标题", + "box": [ + 98, + 28, + 9, + 59 + ], + "text": "蓝羽毛の版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-06/T01.png", + "pixels": 376, + "underlay": "/layout-reference/ref-06/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "右侧竖向说明", + "box": [ + 81, + 49, + 14, + 49 + ], + "text": "审美提升 设计灵感", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-06/T02.png", + "pixels": 368, + "underlay": "/layout-reference/ref-06/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "底部英文标识", + "box": [ + 78, + 162, + 32, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-06/T03.png", + "pixels": 204, + "underlay": "/layout-reference/ref-06/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左侧满高图片", + "box": [ + 4, + 3, + 69, + 163 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-06/I01.png", + "pixels": 11240, + "mask": "/layout-reference/ref-06/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "右上短竖线", + "box": [ + 89, + 4, + 3, + 26 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-06/D01.png", + "pixels": 53 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右下细长线组", + "box": [ + 80, + 102, + 15, + 58 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-06/D02.png", + "pixels": 584 + }, + { + "id": "D03", + "kind": "decoration", + "role": "右侧斜引线", + "box": [ + 81, + 93, + 12, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-06/D03.png", + "pixels": 45 + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19608, + "unreadableText": 1 + } + }, + { + "id": "ref-07", + "name": "同心圆图位与底部年份", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 228, + 112, + 172 + ], + "row": 2, + "column": 3 + }, + "width": 112, + "height": 172, + "reference": "/layout-reference/ref-07/source.png", + "annotated": "/layout-reference/ref-07/annotated.png", + "background": "/layout-reference/ref-07/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "下沿环形文字", + "box": [ + 17, + 75, + 90, + 34 + ], + "text": null, + "direction": "curved", + "reading": "unreadable", + "asset": "/layout-reference/ref-07/T01.png", + "pixels": 160, + "underlay": "/layout-reference/ref-07/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "年份", + "box": [ + 2, + 129, + 27, + 12 + ], + "text": "2025", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-07/T02.png", + "pixels": 226, + "underlay": "/layout-reference/ref-07/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "年份下副标题", + "box": [ + 3, + 140, + 58, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-07/T03.png", + "pixels": 168, + "underlay": "/layout-reference/ref-07/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "底部说明", + "box": [ + 1, + 146, + 109, + 16 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-07/T04.png", + "pixels": 1217, + "underlay": "/layout-reference/ref-07/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "右下品牌", + "box": [ + 58, + 161, + 52, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-07/T05.png", + "pixels": 245, + "underlay": "/layout-reference/ref-07/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "中央圆形主图", + "box": [ + 18, + 9, + 92, + 94 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-07/I01.png", + "pixels": 6852, + "mask": "/layout-reference/ref-07/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "同心环线", + "box": [ + 0, + 0, + 112, + 138 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-07/D01.png", + "pixels": 5238 + } + ], + "ocr": [ + { + "box": [ + 0.026785715591931197, + 0.7558139533053403, + 0.23511904761904764, + 0.0678294573643411 + ], + "confidence": 1, + "text": "2025" + }, + { + "box": [ + 0.5292150606737416, + 0.9085944883228659, + 0.43264130183628624, + 0.05102807791658148 + ], + "confidence": 0.30000001192092896, + "text": "能車贤好雞 蓋羽毛" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19264, + "unreadableText": 4 + } + }, + { + "id": "ref-08", + "name": "双层满宽图与字距横栏", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 227, + 113, + 173 + ], + "row": 2, + "column": 4 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-08/source.png", + "annotated": "/layout-reference/ref-08/annotated.png", + "background": "/layout-reference/ref-08/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "顶部英文刊头", + "box": [ + 0, + 0, + 111, + 14 + ], + "text": "BULUBLUE", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-08/T01.png", + "pixels": 782, + "underlay": "/layout-reference/ref-08/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "顶部中文刊头", + "box": [ + 0, + 14, + 111, + 16 + ], + "text": "蓝羽毛设计", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-08/T02.png", + "pixels": 732, + "underlay": "/layout-reference/ref-08/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "中央字距标签", + "box": [ + 3, + 68, + 107, + 8 + ], + "text": "DESIGNFOR2026", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-08/T03.png", + "pixels": 360, + "underlay": "/layout-reference/ref-08/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "中部横向图片", + "box": [ + 4, + 31, + 102, + 36 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-08/I01.png", + "pixels": 3671, + "mask": "/layout-reference/ref-08/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "下部大图", + "box": [ + 4, + 76, + 102, + 88 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-08/I02.png", + "pixels": 8975, + "mask": "/layout-reference/ref-08/I02-mask.png" + } + ], + "ocr": [ + { + "box": [ + 0.04129793275112562, + 0.01926782282729944, + 0.8938053097345132, + 0.06165703275529866 + ], + "confidence": 0.5, + "text": "BULUBLUE" + }, + { + "box": [ + 0.04129793395280237, + 0.07899807351316634, + 0.9115044247787611, + 0.08863198458574184 + ], + "confidence": 0.5, + "text": "蓝羽毛设计" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 0 + } + }, + { + "id": "ref-09", + "name": "左侧分字标题与右侧长图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 497, + 227, + 113, + 173 + ], + "row": 2, + "column": 5 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-09/source.png", + "annotated": "/layout-reference/ref-09/annotated.png", + "background": "/layout-reference/ref-09/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "左上大字", + "box": [ + 7, + 16, + 19, + 19 + ], + "text": "版", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-09/T01.png", + "pixels": 195, + "underlay": "/layout-reference/ref-09/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左侧小字组", + "box": [ + 8, + 37, + 24, + 24 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-09/T02.png", + "pixels": 162, + "underlay": "/layout-reference/ref-09/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "左中大字", + "box": [ + 8, + 65, + 17, + 15 + ], + "text": "式", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-09/T03.png", + "pixels": 93, + "underlay": "/layout-reference/ref-09/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "底部左侧竖字", + "box": [ + 2, + 142, + 15, + 29 + ], + "text": null, + "direction": "vertical", + "reading": "unreadable", + "asset": "/layout-reference/ref-09/T04.png", + "pixels": 150, + "underlay": "/layout-reference/ref-09/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "底部日期标识", + "box": [ + 40, + 136, + 60, + 8 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-09/T05.png", + "pixels": 186, + "underlay": "/layout-reference/ref-09/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右侧竖长图片", + "box": [ + 38, + 14, + 65, + 109 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-09/I01.png", + "pixels": 6978, + "mask": "/layout-reference/ref-09/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "底部上横线组", + "box": [ + 40, + 144, + 55, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-09/D01.png", + "pixels": 318 + }, + { + "id": "D02", + "kind": "decoration", + "role": "底部双线", + "box": [ + 41, + 157, + 61, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-09/D02.png", + "pixels": 305 + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 3 + } + }, + { + "id": "ref-10", + "name": "半页深底与裁切英文 blue", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 616, + 227, + 113, + 173 + ], + "row": 2, + "column": 6 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-10/source.png", + "annotated": "/layout-reference/ref-10/annotated.png", + "background": "/layout-reference/ref-10/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "裁切英文标题", + "box": [ + 0, + 49, + 85, + 32 + ], + "text": "blue", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-10/T01.png", + "pixels": 1504, + "underlay": "/layout-reference/ref-10/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "英文上方小标签", + "box": [ + 10, + 46, + 73, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-10/T02.png", + "pixels": 105, + "underlay": "/layout-reference/ref-10/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "深底居中说明", + "box": [ + 25, + 144, + 61, + 14 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-10/T03.png", + "pixels": 398, + "underlay": "/layout-reference/ref-10/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "下半页深色图片区", + "box": [ + 1, + 81, + 110, + 91 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-10/I01.png", + "pixels": 9284, + "mask": "/layout-reference/ref-10/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左上角标", + "box": [ + 0, + 4, + 10, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-10/D01.png", + "pixels": 21 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右上角标", + "box": [ + 103, + 4, + 10, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-10/D02.png", + "pixels": 23 + } + ], + "ocr": [ + { + "box": [ + 1.2867459860650037e-9, + 0.32755298650587994, + 0.7463126843657818, + 0.1502890173410405 + ], + "confidence": 0.30000001192092896, + "text": "DUE" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 2 + } + }, + { + "id": "ref-11", + "name": "左上双行标题与右下主图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 135, + 410, + 114, + 173 + ], + "row": 3, + "column": 2 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-11/source.png", + "annotated": "/layout-reference/ref-11/annotated.png", + "background": "/layout-reference/ref-11/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "第一行标题", + "box": [ + 0, + 4, + 54, + 22 + ], + "text": "蓝羽毛", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-11/T01.png", + "pixels": 643, + "underlay": "/layout-reference/ref-11/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "第二行标题", + "box": [ + 0, + 27, + 72, + 23 + ], + "text": "版式灵感", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-11/T02.png", + "pixels": 884, + "underlay": "/layout-reference/ref-11/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "右上小标签", + "box": [ + 84, + 2, + 5, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-11/T03.png", + "pixels": 23, + "underlay": "/layout-reference/ref-11/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右上信息组", + "box": [ + 81, + 20, + 23, + 17 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-11/T04.png", + "pixels": 145, + "underlay": "/layout-reference/ref-11/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "右中短标识", + "box": [ + 82, + 55, + 23, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-11/T05.png", + "pixels": 38, + "underlay": "/layout-reference/ref-11/T05-underlay.png" + }, + { + "id": "T06", + "kind": "text", + "role": "左下脚注", + "box": [ + 0, + 158, + 32, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-11/T06.png", + "pixels": 112, + "underlay": "/layout-reference/ref-11/T06-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右下主图", + "box": [ + 47, + 68, + 60, + 94 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-11/I01.png", + "pixels": 5640, + "mask": "/layout-reference/ref-11/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左中横线组", + "box": [ + 15, + 91, + 23, + 19 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-11/D01.png", + "pixels": 373 + } + ], + "ocr": [ + { + "box": [ + 0.0029239778265106767, + 0.04431599267822739, + 0.4766081871345029, + 0.11560693641618491 + ], + "confidence": 1, + "text": "蓝羽毛" + }, + { + "box": [ + 0.026110667628392013, + 0.17872041532632799, + 0.6085973817702622, + 0.11654760842148737 + ], + "confidence": 1, + "text": "版式灵感" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 4 + } + }, + { + "id": "ref-12", + "name": "三图模块与左侧分散字框", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 409, + 112, + 173 + ], + "row": 3, + "column": 3 + }, + "width": 112, + "height": 173, + "reference": "/layout-reference/ref-12/source.png", + "annotated": "/layout-reference/ref-12/annotated.png", + "background": "/layout-reference/ref-12/background.png", + "elements": [ + { + "id": "D01", + "kind": "decoration", + "role": "左下水平分隔", + "box": [ + 0, + 146, + 31, + 2 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/D01.png", + "pixels": 61 + }, + { + "id": "T01", + "kind": "text", + "role": "左上大字", + "box": [ + 0, + 0, + 32, + 39 + ], + "text": "版", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-12/T01.png", + "pixels": 580, + "underlay": "/layout-reference/ref-12/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左侧竖向副题", + "box": [ + 6, + 53, + 13, + 66 + ], + "text": "蓝羽毛の设计", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-12/T02.png", + "pixels": 487, + "underlay": "/layout-reference/ref-12/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "左下大字", + "box": [ + 0, + 138, + 32, + 33 + ], + "text": "式", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-12/T03.png", + "pixels": 359, + "underlay": "/layout-reference/ref-12/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "分格图注", + "box": [ + 24, + 132, + 87, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-12/T04.png", + "pixels": 172, + "underlay": "/layout-reference/ref-12/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "底部说明", + "box": [ + 35, + 157, + 76, + 13 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-12/T05.png", + "pixels": 632, + "underlay": "/layout-reference/ref-12/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右上主图", + "box": [ + 24, + 18, + 85, + 74 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/I01.png", + "pixels": 6212, + "mask": "/layout-reference/ref-12/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "下方左图片", + "box": [ + 24, + 94, + 53, + 37 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/I02.png", + "pixels": 1961, + "mask": "/layout-reference/ref-12/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "下方右图片", + "box": [ + 79, + 94, + 30, + 37 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/I03.png", + "pixels": 1110, + "mask": "/layout-reference/ref-12/I03-mask.png" + }, + { + "id": "D02", + "kind": "decoration", + "role": "顶部短横线组", + "box": [ + 46, + 6, + 54, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/D02.png", + "pixels": 266 + }, + { + "id": "D03", + "kind": "decoration", + "role": "底部中横线组", + "box": [ + 35, + 141, + 65, + 15 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/D03.png", + "pixels": 697 + } + ], + "ocr": [ + { + "box": [ + 0.014880952149470902, + -3.67515795574036e-10, + 0.2678571428571429, + 0.19845857418111745 + ], + "confidence": 1, + "text": "版" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19376, + "unreadableText": 2 + } + }, + { + "id": "ref-13", + "name": "横题与右侧出血扁椭圆", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 410, + 114, + 173 + ], + "row": 3, + "column": 4 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-13/source.png", + "annotated": "/layout-reference/ref-13/annotated.png", + "background": "/layout-reference/ref-13/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "顶部左标题", + "box": [ + 8, + 12, + 35, + 16 + ], + "text": "版式", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-13/T01.png", + "pixels": 316, + "underlay": "/layout-reference/ref-13/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "顶部右标题", + "box": [ + 70, + 12, + 34, + 16 + ], + "text": "灵感", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-13/T02.png", + "pixels": 343, + "underlay": "/layout-reference/ref-13/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "标题中央微字", + "box": [ + 48, + 14, + 16, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-13/T03.png", + "pixels": 62, + "underlay": "/layout-reference/ref-13/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "左下分行说明", + "box": [ + 8, + 100, + 29, + 48 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-13/T04.png", + "pixels": 646, + "underlay": "/layout-reference/ref-13/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "底部信息", + "box": [ + 4, + 162, + 103, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-13/T05.png", + "pixels": 248, + "underlay": "/layout-reference/ref-13/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右侧扁椭圆主图", + "box": [ + 8, + 31, + 103, + 119 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-13/I01.png", + "pixels": 8615, + "mask": "/layout-reference/ref-13/I01-mask.png" + } + ], + "ocr": [ + { + "box": [ + 0.07309941752558477, + 0.06743737990125243, + 0.8421052631578948, + 0.10404624277456653 + ], + "confidence": 0.30000001192092896, + "text": "版式=灵感" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 3 + } + }, + { + "id": "ref-14", + "name": "大矩形与小方图及居中横题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 497, + 409, + 113, + 174 + ], + "row": 3, + "column": 5 + }, + "width": 113, + "height": 174, + "reference": "/layout-reference/ref-14/source.png", + "annotated": "/layout-reference/ref-14/annotated.png", + "background": "/layout-reference/ref-14/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "中部横向主标题", + "box": [ + 9, + 77, + 91, + 11 + ], + "text": "蓝羽毛 版式灵感设计分享", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-14/T01.png", + "pixels": 495, + "underlay": "/layout-reference/ref-14/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "中部辅助标签", + "box": [ + 11, + 93, + 40, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-14/T02.png", + "pixels": 147, + "underlay": "/layout-reference/ref-14/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "底部两处标识", + "box": [ + 9, + 147, + 80, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-14/T03.png", + "pixels": 178, + "underlay": "/layout-reference/ref-14/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左上主图", + "box": [ + 9, + 11, + 68, + 66 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-14/I01.png", + "pixels": 4421, + "mask": "/layout-reference/ref-14/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "右下小图", + "box": [ + 57, + 94, + 44, + 38 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-14/I02.png", + "pixels": 1672, + "mask": "/layout-reference/ref-14/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "右上细线阶梯", + "box": [ + 81, + 11, + 21, + 12 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-14/D01.png", + "pixels": 217 + } + ], + "ocr": [ + { + "box": [ + 0.07374630927974439, + 0.45785440622605367, + 0.817109144542773, + 0.04980842911877392 + ], + "confidence": 0.30000001192092896, + "text": "置羽毛 版式煲感设计分享" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19662, + "unreadableText": 2 + } + }, + { + "id": "ref-15", + "name": "英文双行刊头与四分之一圆图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 617, + 409, + 112, + 173 + ], + "row": 3, + "column": 6 + }, + "width": 112, + "height": 173, + "reference": "/layout-reference/ref-15/source.png", + "annotated": "/layout-reference/ref-15/annotated.png", + "background": "/layout-reference/ref-15/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "英文第一行", + "box": [ + 6, + 5, + 75, + 19 + ], + "text": "bulublue", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-15/T01.png", + "pixels": 477, + "underlay": "/layout-reference/ref-15/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "英文第二行", + "box": [ + 6, + 25, + 60, + 18 + ], + "text": "design", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-15/T02.png", + "pixels": 524, + "underlay": "/layout-reference/ref-15/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "右上说明", + "box": [ + 82, + 4, + 26, + 19 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-15/T03.png", + "pixels": 164, + "underlay": "/layout-reference/ref-15/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "底部品牌与角标", + "box": [ + 1, + 164, + 109, + 8 + ], + "text": "BULUBLUE DESIGN", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-15/T04.png", + "pixels": 354, + "underlay": "/layout-reference/ref-15/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "上部弧面主图", + "box": [ + 3, + 26, + 104, + 82 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-15/I01.png", + "pixels": 7070, + "mask": "/layout-reference/ref-15/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "下方左图片", + "box": [ + 3, + 108, + 65, + 52 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-15/I02.png", + "pixels": 3337, + "mask": "/layout-reference/ref-15/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "下方右图片", + "box": [ + 70, + 108, + 36, + 51 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-15/I03.png", + "pixels": 1836, + "mask": "/layout-reference/ref-15/I03-mask.png" + } + ], + "ocr": [ + { + "box": [ + 0.04371143600401779, + 0.05444647915103584, + 0.6863866533551897, + 0.08956561520379858 + ], + "confidence": 1, + "text": "bulublue" + }, + { + "box": [ + 0.04360773550246531, + 0.1459897803830712, + 0.5169511976696195, + 0.10108402377148817 + ], + "confidence": 1, + "text": "design" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19376, + "unreadableText": 1 + } + }, + { + "id": "ref-16", + "name": "上下灰阶色带与底部白区", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 15, + 592, + 113, + 173 + ], + "row": 4, + "column": 1 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-16/source.png", + "annotated": "/layout-reference/ref-16/annotated.png", + "background": "/layout-reference/ref-16/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右上竖字", + "box": [ + 83, + 14, + 6, + 25 + ], + "text": "高级版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-16/T01.png", + "pixels": 123, + "underlay": "/layout-reference/ref-16/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "底部左标题", + "box": [ + 9, + 119, + 32, + 3 + ], + "text": "蓝羽毛版式", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-16/T02.png", + "pixels": 71, + "underlay": "/layout-reference/ref-16/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "底部右说明", + "box": [ + 51, + 130, + 45, + 23 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-16/T03.png", + "pixels": 527, + "underlay": "/layout-reference/ref-16/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "底部右脚注", + "box": [ + 51, + 155, + 49, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-16/T04.png", + "pixels": 144, + "underlay": "/layout-reference/ref-16/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "上部浅色图片区", + "box": [ + 1, + 1, + 109, + 53 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-16/I01.png", + "pixels": 5654, + "mask": "/layout-reference/ref-16/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "中部深色图片区", + "box": [ + 1, + 54, + 109, + 53 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-16/I02.png", + "pixels": 5777, + "mask": "/layout-reference/ref-16/I02-mask.png" + } + ], + "ocr": [ + { + "box": [ + 0.08545858282579882, + 0.6702334819989704, + 0.2804102714786136, + 0.03718236140433073 + ], + "confidence": 0.30000001192092896, + "text": "經引毛飯式" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 2 + } + }, + { + "id": "ref-17", + "name": "英文刊头与圆形叠标及窄栏", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 135, + 591, + 113, + 174 + ], + "row": 4, + "column": 2 + }, + "width": 113, + "height": 174, + "reference": "/layout-reference/ref-17/source.png", + "annotated": "/layout-reference/ref-17/annotated.png", + "background": "/layout-reference/ref-17/background.png", + "elements": [ + { + "id": "D01", + "kind": "decoration", + "role": "右栏底线", + "box": [ + 82, + 121, + 29, + 2 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-17/D01.png", + "pixels": 30 + }, + { + "id": "T01", + "kind": "text", + "role": "左上英文第一行", + "box": [ + 6, + 10, + 63, + 10 + ], + "text": "Bulublue", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-17/T01.png", + "pixels": 277, + "underlay": "/layout-reference/ref-17/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左上英文第二行", + "box": [ + 5, + 20, + 56, + 16 + ], + "text": "Design", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-17/T02.png", + "pixels": 423, + "underlay": "/layout-reference/ref-17/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "中部中文横题", + "box": [ + 51, + 50, + 60, + 16 + ], + "text": "高级感版式.", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-17/T03.png", + "pixels": 459, + "underlay": "/layout-reference/ref-17/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右侧窄栏正文", + "box": [ + 82, + 67, + 29, + 54 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-17/T04.png", + "pixels": 329, + "underlay": "/layout-reference/ref-17/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左下主图", + "box": [ + 5, + 68, + 73, + 101 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-17/I01.png", + "pixels": 7161, + "mask": "/layout-reference/ref-17/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "左中叠加圆形", + "box": [ + 5, + 53, + 22, + 22 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-17/I02.png", + "pixels": 372, + "mask": "/layout-reference/ref-17/I02-mask.png" + }, + { + "id": "D02", + "kind": "decoration", + "role": "刊头右侧双线", + "box": [ + 61, + 27, + 50, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-17/D02.png", + "pixels": 253 + }, + { + "id": "D03", + "kind": "decoration", + "role": "底部横向贴条", + "box": [ + 58, + 167, + 54, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-17/D03.png", + "pixels": 324 + } + ], + "ocr": [ + { + "box": [ + 0.05014749428466078, + 0.0651340998323755, + 0.5663716814159292, + 0.06896551724137923 + ], + "confidence": 1, + "text": "Bulublue" + }, + { + "box": [ + 0.04661209192494646, + 0.1362427019870669, + 0.4878967645245668, + 0.07617359965240367 + ], + "confidence": 0.30000001192092896, + "text": "Design" + }, + { + "box": [ + 0.447888041843808, + 0.30109252421060173, + 0.5496516494976031, + 0.07597587117746873 + ], + "confidence": 0.5, + "text": "高级感版式," + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19662, + "unreadableText": 1 + } + }, + { + "id": "ref-18", + "name": "上大图与下方英文双行", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 591, + 113, + 174 + ], + "row": 4, + "column": 3 + }, + "width": 113, + "height": 174, + "reference": "/layout-reference/ref-18/source.png", + "annotated": "/layout-reference/ref-18/annotated.png", + "background": "/layout-reference/ref-18/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "左上微标识", + "box": [ + 0, + 4, + 8, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-18/T01.png", + "pixels": 34, + "underlay": "/layout-reference/ref-18/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "下方英文第一行", + "box": [ + 5, + 108, + 75, + 17 + ], + "text": "Bulublue", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-18/T02.png", + "pixels": 471, + "underlay": "/layout-reference/ref-18/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "下方英文第二行", + "box": [ + 5, + 125, + 74, + 17 + ], + "text": "Design", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-18/T03.png", + "pixels": 435, + "underlay": "/layout-reference/ref-18/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "底部短信息组", + "box": [ + 2, + 155, + 102, + 16 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-18/T04.png", + "pixels": 418, + "underlay": "/layout-reference/ref-18/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "上方主图", + "box": [ + 19, + 6, + 88, + 91 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-18/I01.png", + "pixels": 7995, + "mask": "/layout-reference/ref-18/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左侧竖向刻度", + "box": [ + 0, + 65, + 5, + 29 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-18/D01.png", + "pixels": 112 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右下椭圆线组", + "box": [ + 76, + 128, + 34, + 19 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-18/D02.png", + "pixels": 441 + } + ], + "ocr": [ + { + "box": [ + 0.03818345576318917, + 0.6239403036164336, + 0.6846950384719533, + 0.08353701770534006 + ], + "confidence": 0.5, + "text": "Bulublue" + }, + { + "box": [ + 0.03602924893711706, + 0.6949484790717884, + 0.7361454921486105, + 0.14112464495545596 + ], + "confidence": 0.30000001192092896, + "text": "Design m" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19662, + "unreadableText": 2 + } + }, + { + "id": "ref-19", + "name": "四角大字与中央双圆竖题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 593, + 113, + 171 + ], + "row": 4, + "column": 4 + }, + "width": 113, + "height": 171, + "reference": "/layout-reference/ref-19/source.png", + "annotated": "/layout-reference/ref-19/annotated.png", + "background": "/layout-reference/ref-19/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "左上大字", + "box": [ + 1, + 1, + 31, + 36 + ], + "text": "高", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-19/T01.png", + "pixels": 401, + "underlay": "/layout-reference/ref-19/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "右上大字", + "box": [ + 78, + 0, + 33, + 37 + ], + "text": "级", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-19/T02.png", + "pixels": 455, + "underlay": "/layout-reference/ref-19/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "左下大字", + "box": [ + 1, + 132, + 35, + 39 + ], + "text": "排", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-19/T03.png", + "pixels": 511, + "underlay": "/layout-reference/ref-19/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右下大字", + "box": [ + 77, + 133, + 35, + 38 + ], + "text": "版", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-19/T04.png", + "pixels": 590, + "underlay": "/layout-reference/ref-19/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "中央竖排标题", + "box": [ + 49, + 37, + 17, + 87 + ], + "text": "蓝羽毛の版式灵感", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-19/T05.png", + "pixels": 482, + "underlay": "/layout-reference/ref-19/T05-underlay.png" + }, + { + "id": "T06", + "kind": "text", + "role": "右侧竖向微字", + "box": [ + 103, + 50, + 9, + 57 + ], + "text": null, + "direction": "vertical", + "reading": "unreadable", + "asset": "/layout-reference/ref-19/T06.png", + "pixels": 303, + "underlay": "/layout-reference/ref-19/T06-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "顶部出血椭圆", + "box": [ + 1, + 1, + 109, + 58 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/I01.png", + "pixels": 4172, + "mask": "/layout-reference/ref-19/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "中央圆形图位", + "box": [ + 27, + 44, + 58, + 57 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/I02.png", + "pixels": 2238, + "mask": "/layout-reference/ref-19/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "底部小椭圆", + "box": [ + 45, + 135, + 22, + 17 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/I03.png", + "pixels": 283, + "mask": "/layout-reference/ref-19/I03-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "中部左线组", + "box": [ + 0, + 105, + 47, + 29 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/D01.png", + "pixels": 818 + }, + { + "id": "D02", + "kind": "decoration", + "role": "中部右线组", + "box": [ + 68, + 112, + 39, + 22 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/D02.png", + "pixels": 435 + }, + { + "id": "D03", + "kind": "decoration", + "role": "底部短线", + "box": [ + 43, + 157, + 26, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/D03.png", + "pixels": 76 + } + ], + "ocr": [ + { + "box": [ + 0.04129793498384601, + 0.015594541432284448, + 0.22713864306784656, + 0.2007797270955165 + ], + "confidence": 1, + "text": "高" + }, + { + "box": [ + 0.03244837751659291, + 0.7076023384685672, + 0.23893805309734517, + 0.22807017543859653 + ], + "confidence": 1, + "text": "排" + }, + { + "box": [ + 0.6961651915855457, + -5.311890927117702e-10, + 0.23303834808259583, + 0.21247563352826515 + ], + "confidence": 1, + "text": "级" + }, + { + "box": [ + 0.7050147490689528, + 0.7173489271929825, + 0.2271386430678467, + 0.21832358674463936 + ], + "confidence": 1, + "text": "版" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19323, + "unreadableText": 1 + } + }, + { + "id": "ref-20", + "name": "右上大弧面与左下圆形标题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 496, + 592, + 114, + 173 + ], + "row": 4, + "column": 5 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-20/source.png", + "annotated": "/layout-reference/ref-20/annotated.png", + "background": "/layout-reference/ref-20/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "圆中第一行", + "box": [ + 22, + 102, + 36, + 15 + ], + "text": "高级", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-20/T01.png", + "pixels": 229, + "underlay": "/layout-reference/ref-20/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "圆中第二行", + "box": [ + 21, + 123, + 39, + 18 + ], + "text": "版式", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-20/T02.png", + "pixels": 219, + "underlay": "/layout-reference/ref-20/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "右下短注", + "box": [ + 72, + 158, + 32, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-20/T03.png", + "pixels": 92, + "underlay": "/layout-reference/ref-20/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右上出血椭圆", + "box": [ + 19, + 1, + 94, + 124 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-20/I01.png", + "pixels": 9205, + "mask": "/layout-reference/ref-20/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "左下叠加圆", + "box": [ + 8, + 90, + 61, + 59 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-20/I02.png", + "pixels": 2269, + "mask": "/layout-reference/ref-20/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左上竖线", + "box": [ + 8, + 18, + 4, + 53 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-20/D01.png", + "pixels": 211 + }, + { + "id": "D02", + "kind": "decoration", + "role": "左下竖线", + "box": [ + 29, + 151, + 3, + 22 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-20/D02.png", + "pixels": 48 + } + ], + "ocr": [ + { + "box": [ + 0.19446010141722203, + 0.583293929900469, + 0.3181837650767544, + 0.09925391724573618 + ], + "confidence": 0.30000001192092896, + "text": "高级" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 1 + } + }, + { + "id": "ref-21", + "name": "右侧旋转英文与节点方图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 616, + 592, + 114, + 173 + ], + "row": 4, + "column": 6 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-21/source.png", + "annotated": "/layout-reference/ref-21/annotated.png", + "background": "/layout-reference/ref-21/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧旋转英文", + "box": [ + 87, + 2, + 25, + 109 + ], + "text": "Bulublue", + "direction": "rotated", + "reading": "verified", + "asset": "/layout-reference/ref-21/T01.png", + "pixels": 1020, + "underlay": "/layout-reference/ref-21/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左日期", + "box": [ + 1, + 108, + 14, + 11 + ], + "text": "25", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-21/T02.png", + "pixels": 46, + "underlay": "/layout-reference/ref-21/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "右日期", + "box": [ + 97, + 113, + 11, + 8 + ], + "text": "03", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-21/T03.png", + "pixels": 59, + "underlay": "/layout-reference/ref-21/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右年份", + "box": [ + 85, + 124, + 23, + 9 + ], + "text": "2025", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-21/T04.png", + "pixels": 116, + "underlay": "/layout-reference/ref-21/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "中下说明", + "box": [ + 3, + 128, + 67, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-21/T05.png", + "pixels": 287, + "underlay": "/layout-reference/ref-21/T05-underlay.png" + }, + { + "id": "T06", + "kind": "text", + "role": "底部两块微字", + "box": [ + 5, + 147, + 75, + 15 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-21/T06.png", + "pixels": 603, + "underlay": "/layout-reference/ref-21/T06-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左上主图", + "box": [ + 3, + 4, + 76, + 100 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/I01.png", + "pixels": 7379, + "mask": "/layout-reference/ref-21/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "底部灰色信息区", + "box": [ + 1, + 135, + 110, + 35 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/I02.png", + "pixels": 3138, + "mask": "/layout-reference/ref-21/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "上方圆节点", + "box": [ + 28, + 12, + 9, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/D01.png", + "pixels": 64 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右上圆节点", + "box": [ + 75, + 29, + 11, + 14 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/D02.png", + "pixels": 87 + }, + { + "id": "D03", + "kind": "decoration", + "role": "下方圆节点", + "box": [ + 46, + 99, + 11, + 12 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/D03.png", + "pixels": 80 + }, + { + "id": "D04", + "kind": "decoration", + "role": "右下圆节点", + "box": [ + 97, + 101, + 11, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/D04.png", + "pixels": 6 + }, + { + "id": "D05", + "kind": "decoration", + "role": "日期间椭圆线", + "box": [ + 17, + 112, + 77, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/D05.png", + "pixels": 200 + } + ], + "ocr": [ + { + "box": [ + 0.03216374201388889, + 0.6512524085500964, + 0.10818713450292397, + 0.046242774566473965 + ], + "confidence": 1, + "text": "25" + }, + { + "box": [ + 0.7009572502841679, + 0.02139049098390966, + 0.2679496675904034, + 0.6943671018861391 + ], + "confidence": 0.30000001192092896, + "text": "Bulublue:" + }, + { + "box": [ + 0.7424248804406856, + 0.7201085946235993, + 0.2110566702502512, + 0.049185508478124196 + ], + "confidence": 1, + "text": "2025" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 2 + } + }, + { + "id": "ref-22", + "name": "三段斜切背景与右侧白字", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 15, + 774, + 113, + 173 + ], + "row": 5, + "column": 1 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-22/source.png", + "annotated": "/layout-reference/ref-22/annotated.png", + "background": "/layout-reference/ref-22/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧竖排主标题", + "box": [ + 82, + 0, + 29, + 146 + ], + "text": "蓝羽毛版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-22/T01.png", + "pixels": 3039, + "underlay": "/layout-reference/ref-22/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左上说明", + "box": [ + 4, + 37, + 35, + 11 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-22/T02.png", + "pixels": 160, + "underlay": "/layout-reference/ref-22/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "左中说明", + "box": [ + 2, + 74, + 35, + 24 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-22/T03.png", + "pixels": 417, + "underlay": "/layout-reference/ref-22/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "左下说明", + "box": [ + 3, + 108, + 39, + 20 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-22/T04.png", + "pixels": 430, + "underlay": "/layout-reference/ref-22/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "右下日期", + "box": [ + 74, + 144, + 34, + 12 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-22/T05.png", + "pixels": 209, + "underlay": "/layout-reference/ref-22/T05-underlay.png" + }, + { + "id": "T06", + "kind": "text", + "role": "底部说明", + "box": [ + 3, + 155, + 62, + 14 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-22/T06.png", + "pixels": 373, + "underlay": "/layout-reference/ref-22/T06-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "顶部浅色斜切图", + "box": [ + 1, + 1, + 81, + 66 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-22/I01.png", + "pixels": 4545, + "mask": "/layout-reference/ref-22/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "中部深色斜带图", + "box": [ + 1, + 33, + 111, + 117 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-22/I02.png", + "pixels": 5013, + "mask": "/layout-reference/ref-22/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "底部灰色斜切图", + "box": [ + 1, + 104, + 109, + 66 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-22/I03.png", + "pixels": 4403, + "mask": "/layout-reference/ref-22/I03-mask.png" + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 5 + } + }, + { + "id": "ref-23", + "name": "上方方图与中部大写英文", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 134, + 775, + 114, + 172 + ], + "row": 5, + "column": 2 + }, + "width": 114, + "height": 172, + "reference": "/layout-reference/ref-23/source.png", + "annotated": "/layout-reference/ref-23/annotated.png", + "background": "/layout-reference/ref-23/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右上标识", + "box": [ + 79, + 0, + 26, + 8 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-23/T01.png", + "pixels": 85, + "underlay": "/layout-reference/ref-23/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "主图下方左右标签", + "box": [ + 1, + 72, + 78, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-23/T02.png", + "pixels": 129, + "underlay": "/layout-reference/ref-23/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "中部大英文", + "box": [ + 0, + 78, + 113, + 25 + ], + "text": "BULUBLUE", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-23/T03.png", + "pixels": 1533, + "underlay": "/layout-reference/ref-23/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "英文下方四组微字", + "box": [ + 0, + 104, + 109, + 21 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-23/T04.png", + "pixels": 729, + "underlay": "/layout-reference/ref-23/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "底部三处标签", + "box": [ + 0, + 165, + 105, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-23/T05.png", + "pixels": 285, + "underlay": "/layout-reference/ref-23/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左上方图", + "box": [ + 5, + 4, + 74, + 68 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-23/I01.png", + "pixels": 5032, + "mask": "/layout-reference/ref-23/I01-mask.png" + } + ], + "ocr": [ + { + "box": [ + 0.01702461145837529, + 0.45011763555939854, + 0.9542548642521016, + 0.15596627819445708 + ], + "confidence": 1, + "text": "BULUBLUE" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19608, + "unreadableText": 4 + } + }, + { + "id": "ref-24", + "name": "斜排中文与倾斜装饰线框", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 775, + 113, + 172 + ], + "row": 5, + "column": 3 + }, + "width": 113, + "height": 172, + "reference": "/layout-reference/ref-24/source.png", + "annotated": "/layout-reference/ref-24/annotated.png", + "background": "/layout-reference/ref-24/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "上方斜排标题", + "box": [ + 3, + 0, + 79, + 31 + ], + "text": "蓝羽毛版式", + "direction": "angled", + "reading": "verified", + "asset": "/layout-reference/ref-24/T01.png", + "pixels": 725, + "underlay": "/layout-reference/ref-24/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "标题下方斜微字", + "box": [ + 34, + 27, + 26, + 10 + ], + "text": null, + "direction": "angled", + "reading": "unreadable", + "asset": "/layout-reference/ref-24/T02.png", + "pixels": 91, + "underlay": "/layout-reference/ref-24/T02-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "中央竖向主图", + "box": [ + 21, + 36, + 68, + 100 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/I01.png", + "pixels": 6799, + "mask": "/layout-reference/ref-24/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左侧斜长线", + "box": [ + 2, + 51, + 14, + 60 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/D01.png", + "pixels": 190 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右侧斜长线", + "box": [ + 94, + 15, + 15, + 119 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/D02.png", + "pixels": 624 + }, + { + "id": "D03", + "kind": "decoration", + "role": "左下斜向线组", + "box": [ + 13, + 136, + 57, + 24 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/D03.png", + "pixels": 750 + }, + { + "id": "D04", + "kind": "decoration", + "role": "右下斜贴条组", + "box": [ + 64, + 149, + 42, + 23 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/D04.png", + "pixels": 438 + }, + { + "id": "D05", + "kind": "decoration", + "role": "底边线", + "box": [ + 1, + 168, + 34, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/D05.png", + "pixels": 68 + } + ], + "ocr": [ + { + "box": [ + 0.02748666679407777, + 0.00811422680517071, + 0.6144820131735113, + 0.19655708194703103 + ], + "confidence": 1, + "text": "蓝羽毛版式" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19436, + "unreadableText": 1 + } + }, + { + "id": "ref-25", + "name": "左侧竖题与右下方形主图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 774, + 113, + 173 + ], + "row": 5, + "column": 4 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-25/source.png", + "annotated": "/layout-reference/ref-25/annotated.png", + "background": "/layout-reference/ref-25/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "左侧竖题", + "box": [ + 8, + 39, + 8, + 46 + ], + "text": "高级·版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-25/T01.png", + "pixels": 233, + "underlay": "/layout-reference/ref-25/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左侧辅助竖字", + "box": [ + 20, + 41, + 5, + 21 + ], + "text": null, + "direction": "vertical", + "reading": "unreadable", + "asset": "/layout-reference/ref-25/T02.png", + "pixels": 51, + "underlay": "/layout-reference/ref-25/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "右中说明", + "box": [ + 89, + 42, + 22, + 51 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-25/T03.png", + "pixels": 397, + "underlay": "/layout-reference/ref-25/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "左下边缘说明", + "box": [ + 15, + 132, + 1, + 11 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-25/T04.png", + "pixels": 3, + "underlay": "/layout-reference/ref-25/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右下主图", + "box": [ + 14, + 102, + 94, + 65 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-25/I01.png", + "pixels": 6010, + "mask": "/layout-reference/ref-25/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左上阶梯横线", + "box": [ + 4, + 1, + 39, + 17 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-25/D01.png", + "pixels": 481 + } + ], + "ocr": [ + { + "box": [ + 0.06489673813555782, + 0.23121387201950871, + 0.08259590677807113, + 0.2601156069364161 + ], + "confidence": 0.30000001192092896, + "text": "高設•版式" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 3 + } + }, + { + "id": "ref-26", + "name": "三行英文与曲线指引小图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 496, + 774, + 114, + 173 + ], + "row": 5, + "column": 5 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-26/source.png", + "annotated": "/layout-reference/ref-26/annotated.png", + "background": "/layout-reference/ref-26/background.png", + "elements": [ + { + "id": "D01", + "kind": "decoration", + "role": "第二行下划线", + "box": [ + 0, + 41, + 47, + 1 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/D01.png", + "pixels": 7 + }, + { + "id": "D02", + "kind": "decoration", + "role": "第三行下划线", + "box": [ + 0, + 58, + 67, + 2 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/D02.png", + "pixels": 134 + }, + { + "id": "T01", + "kind": "text", + "role": "第一行英文", + "box": [ + 0, + 0, + 81, + 18 + ], + "text": "Format 58", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-26/T01.png", + "pixels": 657, + "underlay": "/layout-reference/ref-26/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "第二行英文", + "box": [ + 0, + 23, + 49, + 18 + ], + "text": "Bulubl", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-26/T02.png", + "pixels": 433, + "underlay": "/layout-reference/ref-26/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "第三行英文", + "box": [ + 0, + 41, + 68, + 19 + ], + "text": "Bulublue", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-26/T03.png", + "pixels": 574, + "underlay": "/layout-reference/ref-26/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右侧竖排标题", + "box": [ + 98, + 68, + 12, + 46 + ], + "text": "高级版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-26/T04.png", + "pixels": 374, + "underlay": "/layout-reference/ref-26/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "左下说明", + "box": [ + 4, + 140, + 44, + 29 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-26/T05.png", + "pixels": 888, + "underlay": "/layout-reference/ref-26/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右下方形图片", + "box": [ + 66, + 118, + 43, + 50 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/I01.png", + "pixels": 2150, + "mask": "/layout-reference/ref-26/I01-mask.png" + }, + { + "id": "D03", + "kind": "decoration", + "role": "中间分隔线", + "box": [ + 0, + 60, + 112, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/D03.png", + "pixels": 230 + }, + { + "id": "D04", + "kind": "decoration", + "role": "中央自由曲线", + "box": [ + 6, + 48, + 85, + 87 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/D04.png", + "pixels": 534 + }, + { + "id": "D05", + "kind": "decoration", + "role": "自动识别细线", + "box": [ + 91, + 59, + 19, + 1 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/D05.png", + "pixels": 19 + } + ], + "ocr": [ + { + "box": [ + 0.011695904385964868, + 0.017341040546724473, + 0.6549707602339181, + 0.07707129094412335 + ], + "confidence": 0.5, + "text": "Format 58" + }, + { + "box": [ + 0.01461988470535311, + 0.14065510587668595, + 0.4327485380116959, + 0.08285163776493254 + ], + "confidence": 0.5, + "text": "Bulubl" + }, + { + "box": [ + 0.017385159403405345, + 0.23650755152999758, + 0.5821887456882767, + 0.08382497357495267 + ], + "confidence": 1, + "text": "Bulublue" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 1 + } + }, + { + "id": "ref-27", + "name": "对角双区与斜向文字带", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 618, + 774, + 112, + 172 + ], + "row": 5, + "column": 6 + }, + "width": 112, + "height": 172, + "reference": "/layout-reference/ref-27/source.png", + "annotated": "/layout-reference/ref-27/annotated.png", + "background": "/layout-reference/ref-27/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "左侧白色竖题", + "box": [ + 6, + 7, + 12, + 86 + ], + "text": "高级の版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-27/T01.png", + "pixels": 396, + "underlay": "/layout-reference/ref-27/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "中部斜向文字", + "box": [ + 3, + 77, + 109, + 37 + ], + "text": "蓝羽毛·版式", + "direction": "angled", + "reading": "verified", + "asset": "/layout-reference/ref-27/T02.png", + "pixels": 273, + "underlay": "/layout-reference/ref-27/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "底部说明", + "box": [ + 0, + 157, + 112, + 15 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-27/T03.png", + "pixels": 865, + "underlay": "/layout-reference/ref-27/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "上方三角出血图", + "box": [ + 1, + 1, + 108, + 89 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-27/I01.png", + "pixels": 6738, + "mask": "/layout-reference/ref-27/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "下方斜切图", + "box": [ + 1, + 91, + 108, + 68 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-27/I02.png", + "pixels": 4949, + "mask": "/layout-reference/ref-27/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "顶部右阶梯横线", + "box": [ + 61, + 0, + 48, + 20 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-27/D01.png", + "pixels": 581 + }, + { + "id": "D02", + "kind": "decoration", + "role": "中部斜向浅带", + "box": [ + 0, + 72, + 112, + 40 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-27/D02.png", + "pixels": 2000 + }, + { + "id": "D03", + "kind": "decoration", + "role": "左下阶梯横线", + "box": [ + 0, + 145, + 42, + 15 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-27/D03.png", + "pixels": 391 + } + ], + "ocr": [ + { + "box": [ + -0.021385720300243924, + 0.4385955087605439, + 0.8388941628592355, + 0.20254762043324548 + ], + "confidence": 0.5, + "text": "蓝羽毛-版式" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19264, + "unreadableText": 1 + } + } +] diff --git a/apps/wiki/public/layout-reference/numbered-source.png b/apps/wiki/public/layout-reference/numbered-source.png new file mode 100644 index 0000000..ed56a44 Binary files /dev/null and b/apps/wiki/public/layout-reference/numbered-source.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/D01.png b/apps/wiki/public/layout-reference/ref-01/D01.png new file mode 100644 index 0000000..73899ea Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/D02.png b/apps/wiki/public/layout-reference/ref-01/D02.png new file mode 100644 index 0000000..12899c3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/I01-mask.png b/apps/wiki/public/layout-reference/ref-01/I01-mask.png new file mode 100644 index 0000000..188bfb8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/I01.png b/apps/wiki/public/layout-reference/ref-01/I01.png new file mode 100644 index 0000000..3f377ad Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/I02-mask.png b/apps/wiki/public/layout-reference/ref-01/I02-mask.png new file mode 100644 index 0000000..c1d1107 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/I02.png b/apps/wiki/public/layout-reference/ref-01/I02.png new file mode 100644 index 0000000..e87905c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/T01-underlay.png b/apps/wiki/public/layout-reference/ref-01/T01-underlay.png new file mode 100644 index 0000000..6a2ffcf Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/T01.png b/apps/wiki/public/layout-reference/ref-01/T01.png new file mode 100644 index 0000000..76a1a61 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/T02-underlay.png b/apps/wiki/public/layout-reference/ref-01/T02-underlay.png new file mode 100644 index 0000000..f7f8604 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/T02.png b/apps/wiki/public/layout-reference/ref-01/T02.png new file mode 100644 index 0000000..e16e0bf Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/annotated.png b/apps/wiki/public/layout-reference/ref-01/annotated.png new file mode 100644 index 0000000..db933e0 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/background.png b/apps/wiki/public/layout-reference/ref-01/background.png new file mode 100644 index 0000000..ae43936 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/decoration-map.png b/apps/wiki/public/layout-reference/ref-01/decoration-map.png new file mode 100644 index 0000000..8d6346f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/image-map.png b/apps/wiki/public/layout-reference/ref-01/image-map.png new file mode 100644 index 0000000..36ce4cb Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/index.html b/apps/wiki/public/layout-reference/ref-01/index.html new file mode 100644 index 0000000..eaebe75 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-01/index.html @@ -0,0 +1,14 @@ + +ref-01 · 双矩形错位与左下说明

ref-01 / 双矩形错位与左下说明

原图纸底与画框 +BULUBLUE +左下说明(未辨识原字形) + + + + +构件标注

原图第 1 行、第 2 列;113×171 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-01/manifest.json b/apps/wiki/public/layout-reference/ref-01/manifest.json new file mode 100644 index 0000000..f9d318e --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-01/manifest.json @@ -0,0 +1,140 @@ +{ + "id": "ref-01", + "name": "双矩形错位与左下说明", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 135, + 46, + 113, + 171 + ], + "row": 1, + "column": 2 + }, + "width": 113, + "height": 171, + "reference": "/layout-reference/ref-01/source.png", + "annotated": "/layout-reference/ref-01/annotated.png", + "background": "/layout-reference/ref-01/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "品牌字标", + "box": [ + 8, + 20, + 36, + 15 + ], + "text": "BULUBLUE", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-01/T01.png", + "pixels": 274, + "underlay": "/layout-reference/ref-01/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左下说明", + "box": [ + 7, + 121, + 44, + 34 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-01/T02.png", + "pixels": 468, + "underlay": "/layout-reference/ref-01/T02-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "上方主图", + "box": [ + 24, + 14, + 77, + 71 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-01/I01.png", + "pixels": 5259, + "mask": "/layout-reference/ref-01/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "下方副图", + "box": [ + 42, + 89, + 59, + 70 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-01/I02.png", + "pixels": 4097, + "mask": "/layout-reference/ref-01/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "顶部短线", + "box": [ + 41, + 4, + 29, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-01/D01.png", + "pixels": 55 + }, + { + "id": "D02", + "kind": "decoration", + "role": "底部横线", + "box": [ + 29, + 158, + 58, + 8 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-01/D02.png", + "pixels": 167 + } + ], + "ocr": [ + { + "box": [ + 0.07374631491782553, + 0.12865497059314956, + 0.31268436578171094, + 0.06237816764132553 + ], + "confidence": 0.5, + "text": "BULUBLUE" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19323, + "unreadableText": 1 + } +} diff --git a/apps/wiki/public/layout-reference/ref-01/reconstructed.png b/apps/wiki/public/layout-reference/ref-01/reconstructed.png new file mode 100644 index 0000000..6ca85fb Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/source.png b/apps/wiki/public/layout-reference/ref-01/source.png new file mode 100644 index 0000000..6ca85fb Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-01/text-map.png b/apps/wiki/public/layout-reference/ref-01/text-map.png new file mode 100644 index 0000000..568ea9a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-01/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/D01.png b/apps/wiki/public/layout-reference/ref-02/D01.png new file mode 100644 index 0000000..893bb21 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/D02.png b/apps/wiki/public/layout-reference/ref-02/D02.png new file mode 100644 index 0000000..e84a1be Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/I01-mask.png b/apps/wiki/public/layout-reference/ref-02/I01-mask.png new file mode 100644 index 0000000..231f830 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/I01.png b/apps/wiki/public/layout-reference/ref-02/I01.png new file mode 100644 index 0000000..c3a1829 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/I02-mask.png b/apps/wiki/public/layout-reference/ref-02/I02-mask.png new file mode 100644 index 0000000..6713523 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/I02.png b/apps/wiki/public/layout-reference/ref-02/I02.png new file mode 100644 index 0000000..c863b61 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/I03-mask.png b/apps/wiki/public/layout-reference/ref-02/I03-mask.png new file mode 100644 index 0000000..572812f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/I03-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/I03.png b/apps/wiki/public/layout-reference/ref-02/I03.png new file mode 100644 index 0000000..c3c4e5d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/I03.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/I04-mask.png b/apps/wiki/public/layout-reference/ref-02/I04-mask.png new file mode 100644 index 0000000..834214d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/I04-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/I04.png b/apps/wiki/public/layout-reference/ref-02/I04.png new file mode 100644 index 0000000..0aea5b0 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/I04.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T01-underlay.png b/apps/wiki/public/layout-reference/ref-02/T01-underlay.png new file mode 100644 index 0000000..fa06bbf Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T01.png b/apps/wiki/public/layout-reference/ref-02/T01.png new file mode 100644 index 0000000..d691270 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T02-underlay.png b/apps/wiki/public/layout-reference/ref-02/T02-underlay.png new file mode 100644 index 0000000..2586778 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T02.png b/apps/wiki/public/layout-reference/ref-02/T02.png new file mode 100644 index 0000000..5dbe09e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T03-underlay.png b/apps/wiki/public/layout-reference/ref-02/T03-underlay.png new file mode 100644 index 0000000..9552d41 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T03.png b/apps/wiki/public/layout-reference/ref-02/T03.png new file mode 100644 index 0000000..f7da5ba Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T04-underlay.png b/apps/wiki/public/layout-reference/ref-02/T04-underlay.png new file mode 100644 index 0000000..52a7a4e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T04.png b/apps/wiki/public/layout-reference/ref-02/T04.png new file mode 100644 index 0000000..6f4c30a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T05-underlay.png b/apps/wiki/public/layout-reference/ref-02/T05-underlay.png new file mode 100644 index 0000000..2d98e55 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T05-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T05.png b/apps/wiki/public/layout-reference/ref-02/T05.png new file mode 100644 index 0000000..2132844 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T05.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T06-underlay.png b/apps/wiki/public/layout-reference/ref-02/T06-underlay.png new file mode 100644 index 0000000..c2efcca Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T06-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T06.png b/apps/wiki/public/layout-reference/ref-02/T06.png new file mode 100644 index 0000000..b207709 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T06.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T07-underlay.png b/apps/wiki/public/layout-reference/ref-02/T07-underlay.png new file mode 100644 index 0000000..266f866 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T07-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/T07.png b/apps/wiki/public/layout-reference/ref-02/T07.png new file mode 100644 index 0000000..e097280 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/T07.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/annotated.png b/apps/wiki/public/layout-reference/ref-02/annotated.png new file mode 100644 index 0000000..1e8ce7d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/background.png b/apps/wiki/public/layout-reference/ref-02/background.png new file mode 100644 index 0000000..181c35e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/decoration-map.png b/apps/wiki/public/layout-reference/ref-02/decoration-map.png new file mode 100644 index 0000000..4bab270 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/image-map.png b/apps/wiki/public/layout-reference/ref-02/image-map.png new file mode 100644 index 0000000..a58f0d4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/index.html b/apps/wiki/public/layout-reference/ref-02/index.html new file mode 100644 index 0000000..4693607 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-02/index.html @@ -0,0 +1,21 @@ + +ref-02 · 四格图片列与双列竖题

ref-02 / 四格图片列与双列竖题

原图纸底与画框 +蓝羽毛版式设计系列 +版式灵感收藏 +图片一图注(未辨识原字形) +图片二图注(未辨识原字形) +图片三图注(未辨识原字形) +右下说明(未辨识原字形) +右下品牌与说明(未辨识原字形) + + + + + + +构件标注

原图第 1 行、第 3 列;112×171 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-02/manifest.json b/apps/wiki/public/layout-reference/ref-02/manifest.json new file mode 100644 index 0000000..b746732 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-02/manifest.json @@ -0,0 +1,248 @@ +{ + "id": "ref-02", + "name": "四格图片列与双列竖题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 46, + 112, + 171 + ], + "row": 1, + "column": 3 + }, + "width": 112, + "height": 171, + "reference": "/layout-reference/ref-02/source.png", + "annotated": "/layout-reference/ref-02/annotated.png", + "background": "/layout-reference/ref-02/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧主标题", + "box": [ + 91, + 0, + 20, + 126 + ], + "text": "蓝羽毛版式设计系列", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-02/T01.png", + "pixels": 1348, + "underlay": "/layout-reference/ref-02/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "中间副标题", + "box": [ + 70, + 0, + 19, + 84 + ], + "text": "版式灵感收藏", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-02/T02.png", + "pixels": 776, + "underlay": "/layout-reference/ref-02/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "图片一图注", + "box": [ + 0, + 34, + 20, + 4 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-02/T03.png", + "pixels": 28, + "underlay": "/layout-reference/ref-02/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "图片二图注", + "box": [ + 0, + 71, + 29, + 4 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-02/T04.png", + "pixels": 74, + "underlay": "/layout-reference/ref-02/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "图片三图注", + "box": [ + 2, + 132, + 37, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-02/T05.png", + "pixels": 39, + "underlay": "/layout-reference/ref-02/T05-underlay.png" + }, + { + "id": "T06", + "kind": "text", + "role": "右下说明", + "box": [ + 50, + 81, + 32, + 57 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-02/T06.png", + "pixels": 348, + "underlay": "/layout-reference/ref-02/T06-underlay.png" + }, + { + "id": "T07", + "kind": "text", + "role": "右下品牌与说明", + "box": [ + 51, + 143, + 51, + 14 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-02/T07.png", + "pixels": 483, + "underlay": "/layout-reference/ref-02/T07-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "图片一", + "box": [ + 4, + 3, + 40, + 30 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/I01.png", + "pixels": 1198, + "mask": "/layout-reference/ref-02/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "图片二", + "box": [ + 2, + 38, + 44, + 33 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/I02.png", + "pixels": 1443, + "mask": "/layout-reference/ref-02/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "图片三", + "box": [ + 2, + 74, + 44, + 56 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/I03.png", + "pixels": 2421, + "mask": "/layout-reference/ref-02/I03-mask.png" + }, + { + "id": "I04", + "kind": "image", + "role": "图片四", + "box": [ + 2, + 135, + 44, + 29 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/I04.png", + "pixels": 1276, + "mask": "/layout-reference/ref-02/I04-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "分栏细线", + "box": [ + 65, + 2, + 2, + 72 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/D01.png", + "pixels": 143 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右下横线组", + "box": [ + 50, + 158, + 57, + 12 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-02/D02.png", + "pixels": 407 + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19152, + "unreadableText": 5 + } +} diff --git a/apps/wiki/public/layout-reference/ref-02/reconstructed.png b/apps/wiki/public/layout-reference/ref-02/reconstructed.png new file mode 100644 index 0000000..df1eec6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/source.png b/apps/wiki/public/layout-reference/ref-02/source.png new file mode 100644 index 0000000..df1eec6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-02/text-map.png b/apps/wiki/public/layout-reference/ref-02/text-map.png new file mode 100644 index 0000000..355a8fe Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-02/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/D01.png b/apps/wiki/public/layout-reference/ref-03/D01.png new file mode 100644 index 0000000..3600ce6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/D02.png b/apps/wiki/public/layout-reference/ref-03/D02.png new file mode 100644 index 0000000..a588273 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/D03.png b/apps/wiki/public/layout-reference/ref-03/D03.png new file mode 100644 index 0000000..7e08a9d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/D03.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/I01-mask.png b/apps/wiki/public/layout-reference/ref-03/I01-mask.png new file mode 100644 index 0000000..513edb2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/I01.png b/apps/wiki/public/layout-reference/ref-03/I01.png new file mode 100644 index 0000000..4e581e1 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/I02-mask.png b/apps/wiki/public/layout-reference/ref-03/I02-mask.png new file mode 100644 index 0000000..4fc1b0b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/I02.png b/apps/wiki/public/layout-reference/ref-03/I02.png new file mode 100644 index 0000000..3e32a20 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/T01-underlay.png b/apps/wiki/public/layout-reference/ref-03/T01-underlay.png new file mode 100644 index 0000000..f5a614e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/T01.png b/apps/wiki/public/layout-reference/ref-03/T01.png new file mode 100644 index 0000000..e7513d7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/T02-underlay.png b/apps/wiki/public/layout-reference/ref-03/T02-underlay.png new file mode 100644 index 0000000..49cbe1f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/T02.png b/apps/wiki/public/layout-reference/ref-03/T02.png new file mode 100644 index 0000000..bbdb1d8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/T03-underlay.png b/apps/wiki/public/layout-reference/ref-03/T03-underlay.png new file mode 100644 index 0000000..87ea431 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/T03.png b/apps/wiki/public/layout-reference/ref-03/T03.png new file mode 100644 index 0000000..e7b9e28 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/T04-underlay.png b/apps/wiki/public/layout-reference/ref-03/T04-underlay.png new file mode 100644 index 0000000..97cc7ea Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/T04.png b/apps/wiki/public/layout-reference/ref-03/T04.png new file mode 100644 index 0000000..1747027 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/annotated.png b/apps/wiki/public/layout-reference/ref-03/annotated.png new file mode 100644 index 0000000..0645c4e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/background.png b/apps/wiki/public/layout-reference/ref-03/background.png new file mode 100644 index 0000000..ad701a7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/decoration-map.png b/apps/wiki/public/layout-reference/ref-03/decoration-map.png new file mode 100644 index 0000000..f7cf7b4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/image-map.png b/apps/wiki/public/layout-reference/ref-03/image-map.png new file mode 100644 index 0000000..5367e3a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/index.html b/apps/wiki/public/layout-reference/ref-03/index.html new file mode 100644 index 0000000..75b7dd7 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-03/index.html @@ -0,0 +1,17 @@ + +ref-03 · 左上标题与右下错位图

ref-03 / 左上标题与右下错位图

原图纸底与画框 +蓝羽毛 +右上说明(未辨识原字形) +01 +左下信息两列(未辨识原字形) + + + + + +构件标注

原图第 1 行、第 4 列;114×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-03/manifest.json b/apps/wiki/public/layout-reference/ref-03/manifest.json new file mode 100644 index 0000000..f2da201 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-03/manifest.json @@ -0,0 +1,190 @@ +{ + "id": "ref-03", + "name": "左上标题与右下错位图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 46, + 114, + 173 + ], + "row": 1, + "column": 4 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-03/source.png", + "annotated": "/layout-reference/ref-03/annotated.png", + "background": "/layout-reference/ref-03/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "主标题", + "box": [ + 0, + 0, + 45, + 20 + ], + "text": "蓝羽毛", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-03/T01.png", + "pixels": 372, + "underlay": "/layout-reference/ref-03/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "右上说明", + "box": [ + 80, + 22, + 29, + 23 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-03/T02.png", + "pixels": 359, + "underlay": "/layout-reference/ref-03/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "编号", + "box": [ + 100, + 48, + 8, + 7 + ], + "text": "01", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-03/T03.png", + "pixels": 39, + "underlay": "/layout-reference/ref-03/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "左下信息两列", + "box": [ + 4, + 118, + 37, + 33 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-03/T04.png", + "pixels": 353, + "underlay": "/layout-reference/ref-03/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左上主图", + "box": [ + 4, + 22, + 75, + 82 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-03/I01.png", + "pixels": 6006, + "mask": "/layout-reference/ref-03/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "右下副图", + "box": [ + 45, + 107, + 63, + 48 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-03/I02.png", + "pixels": 3004, + "mask": "/layout-reference/ref-03/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "斜引线", + "box": [ + 80, + 49, + 18, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-03/D01.png", + "pixels": 38 + }, + { + "id": "D02", + "kind": "decoration", + "role": "底部左短线", + "box": [ + 24, + 164, + 13, + 4 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-03/D02.png", + "pixels": 52 + }, + { + "id": "D03", + "kind": "decoration", + "role": "底部右短线", + "box": [ + 79, + 163, + 16, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-03/D03.png", + "pixels": 65 + } + ], + "ocr": [ + { + "box": [ + 0.0221329192553819, + 0.02865017716183693, + 0.3329271461531433, + 0.08913510199456776 + ], + "confidence": 0.5, + "text": "蓝羽毛" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 2 + } +} diff --git a/apps/wiki/public/layout-reference/ref-03/reconstructed.png b/apps/wiki/public/layout-reference/ref-03/reconstructed.png new file mode 100644 index 0000000..512bf99 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/source.png b/apps/wiki/public/layout-reference/ref-03/source.png new file mode 100644 index 0000000..512bf99 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-03/text-map.png b/apps/wiki/public/layout-reference/ref-03/text-map.png new file mode 100644 index 0000000..8cbcf4b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-03/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/D01.png b/apps/wiki/public/layout-reference/ref-04/D01.png new file mode 100644 index 0000000..f26d7a3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/D02.png b/apps/wiki/public/layout-reference/ref-04/D02.png new file mode 100644 index 0000000..dfdc22e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/D03.png b/apps/wiki/public/layout-reference/ref-04/D03.png new file mode 100644 index 0000000..8cff761 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/D03.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/I01-mask.png b/apps/wiki/public/layout-reference/ref-04/I01-mask.png new file mode 100644 index 0000000..44c3fed Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/I01.png b/apps/wiki/public/layout-reference/ref-04/I01.png new file mode 100644 index 0000000..775eeac Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/T01-underlay.png b/apps/wiki/public/layout-reference/ref-04/T01-underlay.png new file mode 100644 index 0000000..212f12e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/T01.png b/apps/wiki/public/layout-reference/ref-04/T01.png new file mode 100644 index 0000000..87d5cf5 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/T02-underlay.png b/apps/wiki/public/layout-reference/ref-04/T02-underlay.png new file mode 100644 index 0000000..df3c011 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/T02.png b/apps/wiki/public/layout-reference/ref-04/T02.png new file mode 100644 index 0000000..cb29b9a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/T03-underlay.png b/apps/wiki/public/layout-reference/ref-04/T03-underlay.png new file mode 100644 index 0000000..f438aa4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/T03.png b/apps/wiki/public/layout-reference/ref-04/T03.png new file mode 100644 index 0000000..f64caca Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/T04-underlay.png b/apps/wiki/public/layout-reference/ref-04/T04-underlay.png new file mode 100644 index 0000000..eb63152 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/T04.png b/apps/wiki/public/layout-reference/ref-04/T04.png new file mode 100644 index 0000000..cb21290 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/annotated.png b/apps/wiki/public/layout-reference/ref-04/annotated.png new file mode 100644 index 0000000..0339fd3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/background.png b/apps/wiki/public/layout-reference/ref-04/background.png new file mode 100644 index 0000000..63e6501 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/decoration-map.png b/apps/wiki/public/layout-reference/ref-04/decoration-map.png new file mode 100644 index 0000000..72050b7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/image-map.png b/apps/wiki/public/layout-reference/ref-04/image-map.png new file mode 100644 index 0000000..a47c596 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/index.html b/apps/wiki/public/layout-reference/ref-04/index.html new file mode 100644 index 0000000..3fd2afd --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-04/index.html @@ -0,0 +1,16 @@ + +ref-04 · 满版灰底椭圆与右侧白字

ref-04 / 满版灰底椭圆与右侧白字

原图纸底与画框 +蓝羽毛 +版式 +椭圆左沿弧形微字(未辨识原字形) +右侧辅助小字(未辨识原字形) + + + + +构件标注

原图第 1 行、第 5 列;113×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-04/manifest.json b/apps/wiki/public/layout-reference/ref-04/manifest.json new file mode 100644 index 0000000..cfe91f6 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-04/manifest.json @@ -0,0 +1,162 @@ +{ + "id": "ref-04", + "name": "满版灰底椭圆与右侧白字", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 497, + 45, + 113, + 173 + ], + "row": 1, + "column": 5 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-04/source.png", + "annotated": "/layout-reference/ref-04/annotated.png", + "background": "/layout-reference/ref-04/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧竖向标题", + "box": [ + 80, + 4, + 22, + 54 + ], + "text": "蓝羽毛", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-04/T01.png", + "pixels": 674, + "underlay": "/layout-reference/ref-04/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "右下竖向标题", + "box": [ + 79, + 104, + 28, + 45 + ], + "text": "版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-04/T02.png", + "pixels": 831, + "underlay": "/layout-reference/ref-04/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "椭圆左沿弧形微字", + "box": [ + 12, + 21, + 23, + 109 + ], + "text": null, + "direction": "curved", + "reading": "unreadable", + "asset": "/layout-reference/ref-04/T03.png", + "pixels": 487, + "underlay": "/layout-reference/ref-04/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右侧辅助小字", + "box": [ + 83, + 82, + 20, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-04/T04.png", + "pixels": 39, + "underlay": "/layout-reference/ref-04/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "中央倾斜椭圆图位", + "box": [ + 11, + 16, + 92, + 143 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-04/I01.png", + "pixels": 9110, + "mask": "/layout-reference/ref-04/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左上方块与短线", + "box": [ + 3, + 8, + 12, + 13 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-04/D01.png", + "pixels": 105 + }, + { + "id": "D02", + "kind": "decoration", + "role": "左下阶梯线组", + "box": [ + 3, + 132, + 29, + 23 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-04/D02.png", + "pixels": 258 + }, + { + "id": "D03", + "kind": "decoration", + "role": "底部细线", + "box": [ + 4, + 167, + 48, + 1 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-04/D03.png", + "pixels": 48 + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 2 + } +} diff --git a/apps/wiki/public/layout-reference/ref-04/reconstructed.png b/apps/wiki/public/layout-reference/ref-04/reconstructed.png new file mode 100644 index 0000000..c42006c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/source.png b/apps/wiki/public/layout-reference/ref-04/source.png new file mode 100644 index 0000000..c42006c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-04/text-map.png b/apps/wiki/public/layout-reference/ref-04/text-map.png new file mode 100644 index 0000000..1a8a3ff Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-04/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/D01.png b/apps/wiki/public/layout-reference/ref-05/D01.png new file mode 100644 index 0000000..9ce0d55 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/I01-mask.png b/apps/wiki/public/layout-reference/ref-05/I01-mask.png new file mode 100644 index 0000000..7266dcb Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/I01.png b/apps/wiki/public/layout-reference/ref-05/I01.png new file mode 100644 index 0000000..e4ab46e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/I02-mask.png b/apps/wiki/public/layout-reference/ref-05/I02-mask.png new file mode 100644 index 0000000..a4f7e1a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/I02.png b/apps/wiki/public/layout-reference/ref-05/I02.png new file mode 100644 index 0000000..5e4ccb2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/I03-mask.png b/apps/wiki/public/layout-reference/ref-05/I03-mask.png new file mode 100644 index 0000000..b4dce8d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/I03-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/I03.png b/apps/wiki/public/layout-reference/ref-05/I03.png new file mode 100644 index 0000000..ed92e9b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/I03.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/I04-mask.png b/apps/wiki/public/layout-reference/ref-05/I04-mask.png new file mode 100644 index 0000000..b68eff3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/I04-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/I04.png b/apps/wiki/public/layout-reference/ref-05/I04.png new file mode 100644 index 0000000..7e135f8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/I04.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/I05-mask.png b/apps/wiki/public/layout-reference/ref-05/I05-mask.png new file mode 100644 index 0000000..f804e0f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/I05-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/I05.png b/apps/wiki/public/layout-reference/ref-05/I05.png new file mode 100644 index 0000000..86220b0 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/I05.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/T01-underlay.png b/apps/wiki/public/layout-reference/ref-05/T01-underlay.png new file mode 100644 index 0000000..83314a9 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/T01.png b/apps/wiki/public/layout-reference/ref-05/T01.png new file mode 100644 index 0000000..1f78400 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/T02-underlay.png b/apps/wiki/public/layout-reference/ref-05/T02-underlay.png new file mode 100644 index 0000000..6bd9d58 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/T02.png b/apps/wiki/public/layout-reference/ref-05/T02.png new file mode 100644 index 0000000..eaa2716 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/annotated.png b/apps/wiki/public/layout-reference/ref-05/annotated.png new file mode 100644 index 0000000..b293e10 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/background.png b/apps/wiki/public/layout-reference/ref-05/background.png new file mode 100644 index 0000000..b820650 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/decoration-map.png b/apps/wiki/public/layout-reference/ref-05/decoration-map.png new file mode 100644 index 0000000..f844841 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/image-map.png b/apps/wiki/public/layout-reference/ref-05/image-map.png new file mode 100644 index 0000000..82be51e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/index.html b/apps/wiki/public/layout-reference/ref-05/index.html new file mode 100644 index 0000000..69e7823 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-05/index.html @@ -0,0 +1,16 @@ + +ref-05 · 五圆出血与右侧竖排大字

ref-05 / 五圆出血与右侧竖排大字

原图纸底与画框 +蓝羽毛 +版式设计 设计灵感 + + + + + + +构件标注

原图第 1 行、第 6 列;112×172 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-05/manifest.json b/apps/wiki/public/layout-reference/ref-05/manifest.json new file mode 100644 index 0000000..7f24cd4 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-05/manifest.json @@ -0,0 +1,164 @@ +{ + "id": "ref-05", + "name": "五圆出血与右侧竖排大字", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 617, + 45, + 112, + 172 + ], + "row": 1, + "column": 6 + }, + "width": 112, + "height": 172, + "reference": "/layout-reference/ref-05/source.png", + "annotated": "/layout-reference/ref-05/annotated.png", + "background": "/layout-reference/ref-05/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧大标题", + "box": [ + 72, + 71, + 28, + 99 + ], + "text": "蓝羽毛", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-05/T01.png", + "pixels": 1148, + "underlay": "/layout-reference/ref-05/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "右侧细标题", + "box": [ + 100, + 72, + 11, + 90 + ], + "text": "版式设计 设计灵感", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-05/T02.png", + "pixels": 487, + "underlay": "/layout-reference/ref-05/T02-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左上出血圆", + "box": [ + 1, + 5, + 44, + 57 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/I01.png", + "pixels": 2144, + "mask": "/layout-reference/ref-05/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "右上出血圆", + "box": [ + 56, + 1, + 54, + 44 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/I02.png", + "pixels": 2070, + "mask": "/layout-reference/ref-05/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "中部圆", + "box": [ + 46, + 44, + 42, + 42 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/I03.png", + "pixels": 1302, + "mask": "/layout-reference/ref-05/I03-mask.png" + }, + { + "id": "I04", + "kind": "image", + "role": "左中小圆", + "box": [ + 3, + 73, + 38, + 37 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/I04.png", + "pixels": 1107, + "mask": "/layout-reference/ref-05/I04-mask.png" + }, + { + "id": "I05", + "kind": "image", + "role": "左下出血圆", + "box": [ + 1, + 119, + 66, + 50 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/I05.png", + "pixels": 2892, + "mask": "/layout-reference/ref-05/I05-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "中下竖线组", + "box": [ + 47, + 106, + 24, + 43 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-05/D01.png", + "pixels": 286 + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19264, + "unreadableText": 0 + } +} diff --git a/apps/wiki/public/layout-reference/ref-05/reconstructed.png b/apps/wiki/public/layout-reference/ref-05/reconstructed.png new file mode 100644 index 0000000..3b50397 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/source.png b/apps/wiki/public/layout-reference/ref-05/source.png new file mode 100644 index 0000000..3b50397 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-05/text-map.png b/apps/wiki/public/layout-reference/ref-05/text-map.png new file mode 100644 index 0000000..f20e3ef Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-05/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/D01.png b/apps/wiki/public/layout-reference/ref-06/D01.png new file mode 100644 index 0000000..5d84b7a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/D02.png b/apps/wiki/public/layout-reference/ref-06/D02.png new file mode 100644 index 0000000..a29fb97 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/D03.png b/apps/wiki/public/layout-reference/ref-06/D03.png new file mode 100644 index 0000000..20d6b7a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/D03.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/I01-mask.png b/apps/wiki/public/layout-reference/ref-06/I01-mask.png new file mode 100644 index 0000000..8590af4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/I01.png b/apps/wiki/public/layout-reference/ref-06/I01.png new file mode 100644 index 0000000..c5cd98a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/T01-underlay.png b/apps/wiki/public/layout-reference/ref-06/T01-underlay.png new file mode 100644 index 0000000..bce68df Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/T01.png b/apps/wiki/public/layout-reference/ref-06/T01.png new file mode 100644 index 0000000..aa81ee0 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/T02-underlay.png b/apps/wiki/public/layout-reference/ref-06/T02-underlay.png new file mode 100644 index 0000000..91085dd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/T02.png b/apps/wiki/public/layout-reference/ref-06/T02.png new file mode 100644 index 0000000..e4f97d8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/T03-underlay.png b/apps/wiki/public/layout-reference/ref-06/T03-underlay.png new file mode 100644 index 0000000..b43ffd7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/T03.png b/apps/wiki/public/layout-reference/ref-06/T03.png new file mode 100644 index 0000000..a374acc Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/annotated.png b/apps/wiki/public/layout-reference/ref-06/annotated.png new file mode 100644 index 0000000..8c2d60a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/background.png b/apps/wiki/public/layout-reference/ref-06/background.png new file mode 100644 index 0000000..c9c03cc Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/decoration-map.png b/apps/wiki/public/layout-reference/ref-06/decoration-map.png new file mode 100644 index 0000000..305f8f8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/image-map.png b/apps/wiki/public/layout-reference/ref-06/image-map.png new file mode 100644 index 0000000..349450d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/index.html b/apps/wiki/public/layout-reference/ref-06/index.html new file mode 100644 index 0000000..0dd137e --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-06/index.html @@ -0,0 +1,15 @@ + +ref-06 · 满高左图与右侧窄栏

ref-06 / 满高左图与右侧窄栏

原图纸底与画框 +蓝羽毛の版式 +审美提升 设计灵感 +底部英文标识(未辨识原字形) + + + + +构件标注

原图第 2 行、第 2 列;114×172 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-06/manifest.json b/apps/wiki/public/layout-reference/ref-06/manifest.json new file mode 100644 index 0000000..7d083fd --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-06/manifest.json @@ -0,0 +1,145 @@ +{ + "id": "ref-06", + "name": "满高左图与右侧窄栏", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 134, + 228, + 114, + 172 + ], + "row": 2, + "column": 2 + }, + "width": 114, + "height": 172, + "reference": "/layout-reference/ref-06/source.png", + "annotated": "/layout-reference/ref-06/annotated.png", + "background": "/layout-reference/ref-06/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧竖向主标题", + "box": [ + 98, + 28, + 9, + 59 + ], + "text": "蓝羽毛の版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-06/T01.png", + "pixels": 376, + "underlay": "/layout-reference/ref-06/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "右侧竖向说明", + "box": [ + 81, + 49, + 14, + 49 + ], + "text": "审美提升 设计灵感", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-06/T02.png", + "pixels": 368, + "underlay": "/layout-reference/ref-06/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "底部英文标识", + "box": [ + 78, + 162, + 32, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-06/T03.png", + "pixels": 204, + "underlay": "/layout-reference/ref-06/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左侧满高图片", + "box": [ + 4, + 3, + 69, + 163 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-06/I01.png", + "pixels": 11240, + "mask": "/layout-reference/ref-06/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "右上短竖线", + "box": [ + 89, + 4, + 3, + 26 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-06/D01.png", + "pixels": 53 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右下细长线组", + "box": [ + 80, + 102, + 15, + 58 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-06/D02.png", + "pixels": 584 + }, + { + "id": "D03", + "kind": "decoration", + "role": "右侧斜引线", + "box": [ + 81, + 93, + 12, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-06/D03.png", + "pixels": 45 + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19608, + "unreadableText": 1 + } +} diff --git a/apps/wiki/public/layout-reference/ref-06/reconstructed.png b/apps/wiki/public/layout-reference/ref-06/reconstructed.png new file mode 100644 index 0000000..6a95186 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/source.png b/apps/wiki/public/layout-reference/ref-06/source.png new file mode 100644 index 0000000..6a95186 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-06/text-map.png b/apps/wiki/public/layout-reference/ref-06/text-map.png new file mode 100644 index 0000000..543b44f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-06/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/D01.png b/apps/wiki/public/layout-reference/ref-07/D01.png new file mode 100644 index 0000000..7995b85 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/I01-mask.png b/apps/wiki/public/layout-reference/ref-07/I01-mask.png new file mode 100644 index 0000000..1017e1e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/I01.png b/apps/wiki/public/layout-reference/ref-07/I01.png new file mode 100644 index 0000000..ddc07e1 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/T01-underlay.png b/apps/wiki/public/layout-reference/ref-07/T01-underlay.png new file mode 100644 index 0000000..fa43238 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/T01.png b/apps/wiki/public/layout-reference/ref-07/T01.png new file mode 100644 index 0000000..fd27e89 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/T02-underlay.png b/apps/wiki/public/layout-reference/ref-07/T02-underlay.png new file mode 100644 index 0000000..7024f58 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/T02.png b/apps/wiki/public/layout-reference/ref-07/T02.png new file mode 100644 index 0000000..ef4810e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/T03-underlay.png b/apps/wiki/public/layout-reference/ref-07/T03-underlay.png new file mode 100644 index 0000000..9c445a6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/T03.png b/apps/wiki/public/layout-reference/ref-07/T03.png new file mode 100644 index 0000000..437ddf9 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/T04-underlay.png b/apps/wiki/public/layout-reference/ref-07/T04-underlay.png new file mode 100644 index 0000000..d8de8ca Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/T04.png b/apps/wiki/public/layout-reference/ref-07/T04.png new file mode 100644 index 0000000..74d3d86 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/T05-underlay.png b/apps/wiki/public/layout-reference/ref-07/T05-underlay.png new file mode 100644 index 0000000..0176adc Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/T05-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/T05.png b/apps/wiki/public/layout-reference/ref-07/T05.png new file mode 100644 index 0000000..8ee2b33 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/T05.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/annotated.png b/apps/wiki/public/layout-reference/ref-07/annotated.png new file mode 100644 index 0000000..3a0f675 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/background.png b/apps/wiki/public/layout-reference/ref-07/background.png new file mode 100644 index 0000000..7727bf0 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/decoration-map.png b/apps/wiki/public/layout-reference/ref-07/decoration-map.png new file mode 100644 index 0000000..c784780 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/image-map.png b/apps/wiki/public/layout-reference/ref-07/image-map.png new file mode 100644 index 0000000..eb8d661 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/index.html b/apps/wiki/public/layout-reference/ref-07/index.html new file mode 100644 index 0000000..3c771a8 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-07/index.html @@ -0,0 +1,15 @@ + +ref-07 · 同心圆图位与底部年份

ref-07 / 同心圆图位与底部年份

原图纸底与画框 +下沿环形文字(未辨识原字形) +2025 +年份下副标题(未辨识原字形) +底部说明(未辨识原字形) +右下品牌(未辨识原字形) + + +构件标注

原图第 2 行、第 3 列;112×172 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-07/manifest.json b/apps/wiki/public/layout-reference/ref-07/manifest.json new file mode 100644 index 0000000..5483193 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-07/manifest.json @@ -0,0 +1,168 @@ +{ + "id": "ref-07", + "name": "同心圆图位与底部年份", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 228, + 112, + 172 + ], + "row": 2, + "column": 3 + }, + "width": 112, + "height": 172, + "reference": "/layout-reference/ref-07/source.png", + "annotated": "/layout-reference/ref-07/annotated.png", + "background": "/layout-reference/ref-07/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "下沿环形文字", + "box": [ + 17, + 75, + 90, + 34 + ], + "text": null, + "direction": "curved", + "reading": "unreadable", + "asset": "/layout-reference/ref-07/T01.png", + "pixels": 160, + "underlay": "/layout-reference/ref-07/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "年份", + "box": [ + 2, + 129, + 27, + 12 + ], + "text": "2025", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-07/T02.png", + "pixels": 226, + "underlay": "/layout-reference/ref-07/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "年份下副标题", + "box": [ + 3, + 140, + 58, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-07/T03.png", + "pixels": 168, + "underlay": "/layout-reference/ref-07/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "底部说明", + "box": [ + 1, + 146, + 109, + 16 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-07/T04.png", + "pixels": 1217, + "underlay": "/layout-reference/ref-07/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "右下品牌", + "box": [ + 58, + 161, + 52, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-07/T05.png", + "pixels": 245, + "underlay": "/layout-reference/ref-07/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "中央圆形主图", + "box": [ + 18, + 9, + 92, + 94 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-07/I01.png", + "pixels": 6852, + "mask": "/layout-reference/ref-07/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "同心环线", + "box": [ + 0, + 0, + 112, + 138 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-07/D01.png", + "pixels": 5238 + } + ], + "ocr": [ + { + "box": [ + 0.026785715591931197, + 0.7558139533053403, + 0.23511904761904764, + 0.0678294573643411 + ], + "confidence": 1, + "text": "2025" + }, + { + "box": [ + 0.5292150606737416, + 0.9085944883228659, + 0.43264130183628624, + 0.05102807791658148 + ], + "confidence": 0.30000001192092896, + "text": "能車贤好雞 蓋羽毛" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19264, + "unreadableText": 4 + } +} diff --git a/apps/wiki/public/layout-reference/ref-07/reconstructed.png b/apps/wiki/public/layout-reference/ref-07/reconstructed.png new file mode 100644 index 0000000..ba059c1 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/source.png b/apps/wiki/public/layout-reference/ref-07/source.png new file mode 100644 index 0000000..ba059c1 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-07/text-map.png b/apps/wiki/public/layout-reference/ref-07/text-map.png new file mode 100644 index 0000000..46869ac Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-07/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/I01-mask.png b/apps/wiki/public/layout-reference/ref-08/I01-mask.png new file mode 100644 index 0000000..bf5bb4d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/I01.png b/apps/wiki/public/layout-reference/ref-08/I01.png new file mode 100644 index 0000000..f1ca571 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/I02-mask.png b/apps/wiki/public/layout-reference/ref-08/I02-mask.png new file mode 100644 index 0000000..82dc270 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/I02.png b/apps/wiki/public/layout-reference/ref-08/I02.png new file mode 100644 index 0000000..6bd9fd2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/T01-underlay.png b/apps/wiki/public/layout-reference/ref-08/T01-underlay.png new file mode 100644 index 0000000..a126dec Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/T01.png b/apps/wiki/public/layout-reference/ref-08/T01.png new file mode 100644 index 0000000..2ec34d6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/T02-underlay.png b/apps/wiki/public/layout-reference/ref-08/T02-underlay.png new file mode 100644 index 0000000..b265852 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/T02.png b/apps/wiki/public/layout-reference/ref-08/T02.png new file mode 100644 index 0000000..60f7528 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/T03-underlay.png b/apps/wiki/public/layout-reference/ref-08/T03-underlay.png new file mode 100644 index 0000000..c7a1637 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/T03.png b/apps/wiki/public/layout-reference/ref-08/T03.png new file mode 100644 index 0000000..9672fdd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/annotated.png b/apps/wiki/public/layout-reference/ref-08/annotated.png new file mode 100644 index 0000000..d22dd43 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/background.png b/apps/wiki/public/layout-reference/ref-08/background.png new file mode 100644 index 0000000..9a25915 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/decoration-map.png b/apps/wiki/public/layout-reference/ref-08/decoration-map.png new file mode 100644 index 0000000..a026986 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/image-map.png b/apps/wiki/public/layout-reference/ref-08/image-map.png new file mode 100644 index 0000000..570ede3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/index.html b/apps/wiki/public/layout-reference/ref-08/index.html new file mode 100644 index 0000000..ae8a607 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-08/index.html @@ -0,0 +1,13 @@ + +ref-08 · 双层满宽图与字距横栏

ref-08 / 双层满宽图与字距横栏

原图纸底与画框 +BULUBLUE +蓝羽毛设计 +DESIGNFOR2026 + + +构件标注

原图第 2 行、第 4 列;113×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-08/manifest.json b/apps/wiki/public/layout-reference/ref-08/manifest.json new file mode 100644 index 0000000..939e44d --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-08/manifest.json @@ -0,0 +1,135 @@ +{ + "id": "ref-08", + "name": "双层满宽图与字距横栏", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 227, + 113, + 173 + ], + "row": 2, + "column": 4 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-08/source.png", + "annotated": "/layout-reference/ref-08/annotated.png", + "background": "/layout-reference/ref-08/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "顶部英文刊头", + "box": [ + 0, + 0, + 111, + 14 + ], + "text": "BULUBLUE", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-08/T01.png", + "pixels": 782, + "underlay": "/layout-reference/ref-08/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "顶部中文刊头", + "box": [ + 0, + 14, + 111, + 16 + ], + "text": "蓝羽毛设计", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-08/T02.png", + "pixels": 732, + "underlay": "/layout-reference/ref-08/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "中央字距标签", + "box": [ + 3, + 68, + 107, + 8 + ], + "text": "DESIGNFOR2026", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-08/T03.png", + "pixels": 360, + "underlay": "/layout-reference/ref-08/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "中部横向图片", + "box": [ + 4, + 31, + 102, + 36 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-08/I01.png", + "pixels": 3671, + "mask": "/layout-reference/ref-08/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "下部大图", + "box": [ + 4, + 76, + 102, + 88 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-08/I02.png", + "pixels": 8975, + "mask": "/layout-reference/ref-08/I02-mask.png" + } + ], + "ocr": [ + { + "box": [ + 0.04129793275112562, + 0.01926782282729944, + 0.8938053097345132, + 0.06165703275529866 + ], + "confidence": 0.5, + "text": "BULUBLUE" + }, + { + "box": [ + 0.04129793395280237, + 0.07899807351316634, + 0.9115044247787611, + 0.08863198458574184 + ], + "confidence": 0.5, + "text": "蓝羽毛设计" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 0 + } +} diff --git a/apps/wiki/public/layout-reference/ref-08/reconstructed.png b/apps/wiki/public/layout-reference/ref-08/reconstructed.png new file mode 100644 index 0000000..f8abcb1 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/source.png b/apps/wiki/public/layout-reference/ref-08/source.png new file mode 100644 index 0000000..f8abcb1 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-08/text-map.png b/apps/wiki/public/layout-reference/ref-08/text-map.png new file mode 100644 index 0000000..8bce6ca Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-08/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/D01.png b/apps/wiki/public/layout-reference/ref-09/D01.png new file mode 100644 index 0000000..4e44982 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/D02.png b/apps/wiki/public/layout-reference/ref-09/D02.png new file mode 100644 index 0000000..06f7313 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/I01-mask.png b/apps/wiki/public/layout-reference/ref-09/I01-mask.png new file mode 100644 index 0000000..386adf1 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/I01.png b/apps/wiki/public/layout-reference/ref-09/I01.png new file mode 100644 index 0000000..5febfea Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/T01-underlay.png b/apps/wiki/public/layout-reference/ref-09/T01-underlay.png new file mode 100644 index 0000000..1f184b8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/T01.png b/apps/wiki/public/layout-reference/ref-09/T01.png new file mode 100644 index 0000000..d98ddfd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/T02-underlay.png b/apps/wiki/public/layout-reference/ref-09/T02-underlay.png new file mode 100644 index 0000000..1756822 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/T02.png b/apps/wiki/public/layout-reference/ref-09/T02.png new file mode 100644 index 0000000..319b990 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/T03-underlay.png b/apps/wiki/public/layout-reference/ref-09/T03-underlay.png new file mode 100644 index 0000000..e95a625 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/T03.png b/apps/wiki/public/layout-reference/ref-09/T03.png new file mode 100644 index 0000000..03f10e3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/T04-underlay.png b/apps/wiki/public/layout-reference/ref-09/T04-underlay.png new file mode 100644 index 0000000..a9c011f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/T04.png b/apps/wiki/public/layout-reference/ref-09/T04.png new file mode 100644 index 0000000..a56e4d9 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/T05-underlay.png b/apps/wiki/public/layout-reference/ref-09/T05-underlay.png new file mode 100644 index 0000000..0408653 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/T05-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/T05.png b/apps/wiki/public/layout-reference/ref-09/T05.png new file mode 100644 index 0000000..2e474e2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/T05.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/annotated.png b/apps/wiki/public/layout-reference/ref-09/annotated.png new file mode 100644 index 0000000..cb33310 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/background.png b/apps/wiki/public/layout-reference/ref-09/background.png new file mode 100644 index 0000000..6954652 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/decoration-map.png b/apps/wiki/public/layout-reference/ref-09/decoration-map.png new file mode 100644 index 0000000..cba16b5 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/image-map.png b/apps/wiki/public/layout-reference/ref-09/image-map.png new file mode 100644 index 0000000..7b1798f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/index.html b/apps/wiki/public/layout-reference/ref-09/index.html new file mode 100644 index 0000000..83142c4 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-09/index.html @@ -0,0 +1,16 @@ + +ref-09 · 左侧分字标题与右侧长图

ref-09 / 左侧分字标题与右侧长图

原图纸底与画框 +版 +左侧小字组(未辨识原字形) +式 +底部左侧竖字(未辨识原字形) +底部日期标识(未辨识原字形) + + + +构件标注

原图第 2 行、第 5 列;113×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-09/manifest.json b/apps/wiki/public/layout-reference/ref-09/manifest.json new file mode 100644 index 0000000..84df58e --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-09/manifest.json @@ -0,0 +1,163 @@ +{ + "id": "ref-09", + "name": "左侧分字标题与右侧长图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 497, + 227, + 113, + 173 + ], + "row": 2, + "column": 5 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-09/source.png", + "annotated": "/layout-reference/ref-09/annotated.png", + "background": "/layout-reference/ref-09/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "左上大字", + "box": [ + 7, + 16, + 19, + 19 + ], + "text": "版", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-09/T01.png", + "pixels": 195, + "underlay": "/layout-reference/ref-09/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左侧小字组", + "box": [ + 8, + 37, + 24, + 24 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-09/T02.png", + "pixels": 162, + "underlay": "/layout-reference/ref-09/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "左中大字", + "box": [ + 8, + 65, + 17, + 15 + ], + "text": "式", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-09/T03.png", + "pixels": 93, + "underlay": "/layout-reference/ref-09/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "底部左侧竖字", + "box": [ + 2, + 142, + 15, + 29 + ], + "text": null, + "direction": "vertical", + "reading": "unreadable", + "asset": "/layout-reference/ref-09/T04.png", + "pixels": 150, + "underlay": "/layout-reference/ref-09/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "底部日期标识", + "box": [ + 40, + 136, + 60, + 8 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-09/T05.png", + "pixels": 186, + "underlay": "/layout-reference/ref-09/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右侧竖长图片", + "box": [ + 38, + 14, + 65, + 109 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-09/I01.png", + "pixels": 6978, + "mask": "/layout-reference/ref-09/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "底部上横线组", + "box": [ + 40, + 144, + 55, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-09/D01.png", + "pixels": 318 + }, + { + "id": "D02", + "kind": "decoration", + "role": "底部双线", + "box": [ + 41, + 157, + 61, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-09/D02.png", + "pixels": 305 + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 3 + } +} diff --git a/apps/wiki/public/layout-reference/ref-09/reconstructed.png b/apps/wiki/public/layout-reference/ref-09/reconstructed.png new file mode 100644 index 0000000..8747dbd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/source.png b/apps/wiki/public/layout-reference/ref-09/source.png new file mode 100644 index 0000000..8747dbd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-09/text-map.png b/apps/wiki/public/layout-reference/ref-09/text-map.png new file mode 100644 index 0000000..287e1b7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-09/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/D01.png b/apps/wiki/public/layout-reference/ref-10/D01.png new file mode 100644 index 0000000..6288226 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/D02.png b/apps/wiki/public/layout-reference/ref-10/D02.png new file mode 100644 index 0000000..aa34277 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/I01-mask.png b/apps/wiki/public/layout-reference/ref-10/I01-mask.png new file mode 100644 index 0000000..af1df5f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/I01.png b/apps/wiki/public/layout-reference/ref-10/I01.png new file mode 100644 index 0000000..8215836 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/T01-underlay.png b/apps/wiki/public/layout-reference/ref-10/T01-underlay.png new file mode 100644 index 0000000..b64b4d7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/T01.png b/apps/wiki/public/layout-reference/ref-10/T01.png new file mode 100644 index 0000000..4e14c4b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/T02-underlay.png b/apps/wiki/public/layout-reference/ref-10/T02-underlay.png new file mode 100644 index 0000000..1ae8181 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/T02.png b/apps/wiki/public/layout-reference/ref-10/T02.png new file mode 100644 index 0000000..ffb1285 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/T03-underlay.png b/apps/wiki/public/layout-reference/ref-10/T03-underlay.png new file mode 100644 index 0000000..adf2b8f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/T03.png b/apps/wiki/public/layout-reference/ref-10/T03.png new file mode 100644 index 0000000..30d5c9b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/annotated.png b/apps/wiki/public/layout-reference/ref-10/annotated.png new file mode 100644 index 0000000..bcecd69 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/background.png b/apps/wiki/public/layout-reference/ref-10/background.png new file mode 100644 index 0000000..f0e69b4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/decoration-map.png b/apps/wiki/public/layout-reference/ref-10/decoration-map.png new file mode 100644 index 0000000..0e1d7ee Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/image-map.png b/apps/wiki/public/layout-reference/ref-10/image-map.png new file mode 100644 index 0000000..e6b6933 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/index.html b/apps/wiki/public/layout-reference/ref-10/index.html new file mode 100644 index 0000000..a3e339e --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-10/index.html @@ -0,0 +1,14 @@ + +ref-10 · 半页深底与裁切英文 blue

ref-10 / 半页深底与裁切英文 blue

原图纸底与画框 +blue +英文上方小标签(未辨识原字形) +深底居中说明(未辨识原字形) + + + +构件标注

原图第 2 行、第 6 列;113×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-10/manifest.json b/apps/wiki/public/layout-reference/ref-10/manifest.json new file mode 100644 index 0000000..9a17ab3 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-10/manifest.json @@ -0,0 +1,140 @@ +{ + "id": "ref-10", + "name": "半页深底与裁切英文 blue", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 616, + 227, + 113, + 173 + ], + "row": 2, + "column": 6 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-10/source.png", + "annotated": "/layout-reference/ref-10/annotated.png", + "background": "/layout-reference/ref-10/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "裁切英文标题", + "box": [ + 0, + 49, + 85, + 32 + ], + "text": "blue", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-10/T01.png", + "pixels": 1504, + "underlay": "/layout-reference/ref-10/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "英文上方小标签", + "box": [ + 10, + 46, + 73, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-10/T02.png", + "pixels": 105, + "underlay": "/layout-reference/ref-10/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "深底居中说明", + "box": [ + 25, + 144, + 61, + 14 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-10/T03.png", + "pixels": 398, + "underlay": "/layout-reference/ref-10/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "下半页深色图片区", + "box": [ + 1, + 81, + 110, + 91 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-10/I01.png", + "pixels": 9284, + "mask": "/layout-reference/ref-10/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左上角标", + "box": [ + 0, + 4, + 10, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-10/D01.png", + "pixels": 21 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右上角标", + "box": [ + 103, + 4, + 10, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-10/D02.png", + "pixels": 23 + } + ], + "ocr": [ + { + "box": [ + 1.2867459860650037e-9, + 0.32755298650587994, + 0.7463126843657818, + 0.1502890173410405 + ], + "confidence": 0.30000001192092896, + "text": "DUE" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 2 + } +} diff --git a/apps/wiki/public/layout-reference/ref-10/reconstructed.png b/apps/wiki/public/layout-reference/ref-10/reconstructed.png new file mode 100644 index 0000000..b553ef1 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/source.png b/apps/wiki/public/layout-reference/ref-10/source.png new file mode 100644 index 0000000..b553ef1 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-10/text-map.png b/apps/wiki/public/layout-reference/ref-10/text-map.png new file mode 100644 index 0000000..46a69b4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-10/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/D01.png b/apps/wiki/public/layout-reference/ref-11/D01.png new file mode 100644 index 0000000..3d581f6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/I01-mask.png b/apps/wiki/public/layout-reference/ref-11/I01-mask.png new file mode 100644 index 0000000..4b35f20 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/I01.png b/apps/wiki/public/layout-reference/ref-11/I01.png new file mode 100644 index 0000000..2d3fb5b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T01-underlay.png b/apps/wiki/public/layout-reference/ref-11/T01-underlay.png new file mode 100644 index 0000000..9c8d4a8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T01.png b/apps/wiki/public/layout-reference/ref-11/T01.png new file mode 100644 index 0000000..daf8ab2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T02-underlay.png b/apps/wiki/public/layout-reference/ref-11/T02-underlay.png new file mode 100644 index 0000000..1537f87 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T02.png b/apps/wiki/public/layout-reference/ref-11/T02.png new file mode 100644 index 0000000..1451606 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T03-underlay.png b/apps/wiki/public/layout-reference/ref-11/T03-underlay.png new file mode 100644 index 0000000..a582271 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T03.png b/apps/wiki/public/layout-reference/ref-11/T03.png new file mode 100644 index 0000000..0b9f536 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T04-underlay.png b/apps/wiki/public/layout-reference/ref-11/T04-underlay.png new file mode 100644 index 0000000..3a8ba44 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T04.png b/apps/wiki/public/layout-reference/ref-11/T04.png new file mode 100644 index 0000000..7b77870 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T05-underlay.png b/apps/wiki/public/layout-reference/ref-11/T05-underlay.png new file mode 100644 index 0000000..bc1951c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T05-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T05.png b/apps/wiki/public/layout-reference/ref-11/T05.png new file mode 100644 index 0000000..7f17009 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T05.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T06-underlay.png b/apps/wiki/public/layout-reference/ref-11/T06-underlay.png new file mode 100644 index 0000000..cfa9711 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T06-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/T06.png b/apps/wiki/public/layout-reference/ref-11/T06.png new file mode 100644 index 0000000..d124ef4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/T06.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/annotated.png b/apps/wiki/public/layout-reference/ref-11/annotated.png new file mode 100644 index 0000000..fd34649 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/background.png b/apps/wiki/public/layout-reference/ref-11/background.png new file mode 100644 index 0000000..eac3e21 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/decoration-map.png b/apps/wiki/public/layout-reference/ref-11/decoration-map.png new file mode 100644 index 0000000..c4802b2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/image-map.png b/apps/wiki/public/layout-reference/ref-11/image-map.png new file mode 100644 index 0000000..7db32f9 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/index.html b/apps/wiki/public/layout-reference/ref-11/index.html new file mode 100644 index 0000000..a2103fd --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-11/index.html @@ -0,0 +1,16 @@ + +ref-11 · 左上双行标题与右下主图

ref-11 / 左上双行标题与右下主图

原图纸底与画框 +蓝羽毛 +版式灵感 +右上小标签(未辨识原字形) +右上信息组(未辨识原字形) +右中短标识(未辨识原字形) +左下脚注(未辨识原字形) + + +构件标注

原图第 3 行、第 2 列;114×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-11/manifest.json b/apps/wiki/public/layout-reference/ref-11/manifest.json new file mode 100644 index 0000000..8bc78de --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-11/manifest.json @@ -0,0 +1,185 @@ +{ + "id": "ref-11", + "name": "左上双行标题与右下主图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 135, + 410, + 114, + 173 + ], + "row": 3, + "column": 2 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-11/source.png", + "annotated": "/layout-reference/ref-11/annotated.png", + "background": "/layout-reference/ref-11/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "第一行标题", + "box": [ + 0, + 4, + 54, + 22 + ], + "text": "蓝羽毛", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-11/T01.png", + "pixels": 643, + "underlay": "/layout-reference/ref-11/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "第二行标题", + "box": [ + 0, + 27, + 72, + 23 + ], + "text": "版式灵感", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-11/T02.png", + "pixels": 884, + "underlay": "/layout-reference/ref-11/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "右上小标签", + "box": [ + 84, + 2, + 5, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-11/T03.png", + "pixels": 23, + "underlay": "/layout-reference/ref-11/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右上信息组", + "box": [ + 81, + 20, + 23, + 17 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-11/T04.png", + "pixels": 145, + "underlay": "/layout-reference/ref-11/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "右中短标识", + "box": [ + 82, + 55, + 23, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-11/T05.png", + "pixels": 38, + "underlay": "/layout-reference/ref-11/T05-underlay.png" + }, + { + "id": "T06", + "kind": "text", + "role": "左下脚注", + "box": [ + 0, + 158, + 32, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-11/T06.png", + "pixels": 112, + "underlay": "/layout-reference/ref-11/T06-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右下主图", + "box": [ + 47, + 68, + 60, + 94 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-11/I01.png", + "pixels": 5640, + "mask": "/layout-reference/ref-11/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左中横线组", + "box": [ + 15, + 91, + 23, + 19 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-11/D01.png", + "pixels": 373 + } + ], + "ocr": [ + { + "box": [ + 0.0029239778265106767, + 0.04431599267822739, + 0.4766081871345029, + 0.11560693641618491 + ], + "confidence": 1, + "text": "蓝羽毛" + }, + { + "box": [ + 0.026110667628392013, + 0.17872041532632799, + 0.6085973817702622, + 0.11654760842148737 + ], + "confidence": 1, + "text": "版式灵感" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 4 + } +} diff --git a/apps/wiki/public/layout-reference/ref-11/reconstructed.png b/apps/wiki/public/layout-reference/ref-11/reconstructed.png new file mode 100644 index 0000000..fce24ef Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/source.png b/apps/wiki/public/layout-reference/ref-11/source.png new file mode 100644 index 0000000..fce24ef Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-11/text-map.png b/apps/wiki/public/layout-reference/ref-11/text-map.png new file mode 100644 index 0000000..88007a1 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-11/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/D01.png b/apps/wiki/public/layout-reference/ref-12/D01.png new file mode 100644 index 0000000..c929b3c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/D02.png b/apps/wiki/public/layout-reference/ref-12/D02.png new file mode 100644 index 0000000..8a4ad92 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/D03.png b/apps/wiki/public/layout-reference/ref-12/D03.png new file mode 100644 index 0000000..edffb5b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/D03.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/I01-mask.png b/apps/wiki/public/layout-reference/ref-12/I01-mask.png new file mode 100644 index 0000000..499347c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/I01.png b/apps/wiki/public/layout-reference/ref-12/I01.png new file mode 100644 index 0000000..2bd2c57 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/I02-mask.png b/apps/wiki/public/layout-reference/ref-12/I02-mask.png new file mode 100644 index 0000000..287c613 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/I02.png b/apps/wiki/public/layout-reference/ref-12/I02.png new file mode 100644 index 0000000..a8def8e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/I03-mask.png b/apps/wiki/public/layout-reference/ref-12/I03-mask.png new file mode 100644 index 0000000..3b4def8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/I03-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/I03.png b/apps/wiki/public/layout-reference/ref-12/I03.png new file mode 100644 index 0000000..7bc460c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/I03.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/T01-underlay.png b/apps/wiki/public/layout-reference/ref-12/T01-underlay.png new file mode 100644 index 0000000..5ced0c7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/T01.png b/apps/wiki/public/layout-reference/ref-12/T01.png new file mode 100644 index 0000000..3dff6f7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/T02-underlay.png b/apps/wiki/public/layout-reference/ref-12/T02-underlay.png new file mode 100644 index 0000000..11515c3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/T02.png b/apps/wiki/public/layout-reference/ref-12/T02.png new file mode 100644 index 0000000..803324d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/T03-underlay.png b/apps/wiki/public/layout-reference/ref-12/T03-underlay.png new file mode 100644 index 0000000..fedcbff Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/T03.png b/apps/wiki/public/layout-reference/ref-12/T03.png new file mode 100644 index 0000000..6233c66 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/T04-underlay.png b/apps/wiki/public/layout-reference/ref-12/T04-underlay.png new file mode 100644 index 0000000..05ec0be Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/T04.png b/apps/wiki/public/layout-reference/ref-12/T04.png new file mode 100644 index 0000000..172adec Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/T05-underlay.png b/apps/wiki/public/layout-reference/ref-12/T05-underlay.png new file mode 100644 index 0000000..e659820 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/T05-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/T05.png b/apps/wiki/public/layout-reference/ref-12/T05.png new file mode 100644 index 0000000..3b67f88 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/T05.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/annotated.png b/apps/wiki/public/layout-reference/ref-12/annotated.png new file mode 100644 index 0000000..8cd19a6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/background.png b/apps/wiki/public/layout-reference/ref-12/background.png new file mode 100644 index 0000000..7d9faf7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/decoration-map.png b/apps/wiki/public/layout-reference/ref-12/decoration-map.png new file mode 100644 index 0000000..607708c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/image-map.png b/apps/wiki/public/layout-reference/ref-12/image-map.png new file mode 100644 index 0000000..6d30c09 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/index.html b/apps/wiki/public/layout-reference/ref-12/index.html new file mode 100644 index 0000000..a387dd7 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-12/index.html @@ -0,0 +1,19 @@ + +ref-12 · 三图模块与左侧分散字框

ref-12 / 三图模块与左侧分散字框

原图纸底与画框 + +版 +蓝羽毛の设计 +式 +分格图注(未辨识原字形) +底部说明(未辨识原字形) + + + + + +构件标注

原图第 3 行、第 3 列;112×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-12/manifest.json b/apps/wiki/public/layout-reference/ref-12/manifest.json new file mode 100644 index 0000000..e6f6d3f --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-12/manifest.json @@ -0,0 +1,224 @@ +{ + "id": "ref-12", + "name": "三图模块与左侧分散字框", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 409, + 112, + 173 + ], + "row": 3, + "column": 3 + }, + "width": 112, + "height": 173, + "reference": "/layout-reference/ref-12/source.png", + "annotated": "/layout-reference/ref-12/annotated.png", + "background": "/layout-reference/ref-12/background.png", + "elements": [ + { + "id": "D01", + "kind": "decoration", + "role": "左下水平分隔", + "box": [ + 0, + 146, + 31, + 2 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/D01.png", + "pixels": 61 + }, + { + "id": "T01", + "kind": "text", + "role": "左上大字", + "box": [ + 0, + 0, + 32, + 39 + ], + "text": "版", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-12/T01.png", + "pixels": 580, + "underlay": "/layout-reference/ref-12/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左侧竖向副题", + "box": [ + 6, + 53, + 13, + 66 + ], + "text": "蓝羽毛の设计", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-12/T02.png", + "pixels": 487, + "underlay": "/layout-reference/ref-12/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "左下大字", + "box": [ + 0, + 138, + 32, + 33 + ], + "text": "式", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-12/T03.png", + "pixels": 359, + "underlay": "/layout-reference/ref-12/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "分格图注", + "box": [ + 24, + 132, + 87, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-12/T04.png", + "pixels": 172, + "underlay": "/layout-reference/ref-12/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "底部说明", + "box": [ + 35, + 157, + 76, + 13 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-12/T05.png", + "pixels": 632, + "underlay": "/layout-reference/ref-12/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右上主图", + "box": [ + 24, + 18, + 85, + 74 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/I01.png", + "pixels": 6212, + "mask": "/layout-reference/ref-12/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "下方左图片", + "box": [ + 24, + 94, + 53, + 37 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/I02.png", + "pixels": 1961, + "mask": "/layout-reference/ref-12/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "下方右图片", + "box": [ + 79, + 94, + 30, + 37 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/I03.png", + "pixels": 1110, + "mask": "/layout-reference/ref-12/I03-mask.png" + }, + { + "id": "D02", + "kind": "decoration", + "role": "顶部短横线组", + "box": [ + 46, + 6, + 54, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/D02.png", + "pixels": 266 + }, + { + "id": "D03", + "kind": "decoration", + "role": "底部中横线组", + "box": [ + 35, + 141, + 65, + 15 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-12/D03.png", + "pixels": 697 + } + ], + "ocr": [ + { + "box": [ + 0.014880952149470902, + -3.67515795574036e-10, + 0.2678571428571429, + 0.19845857418111745 + ], + "confidence": 1, + "text": "版" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19376, + "unreadableText": 2 + } +} diff --git a/apps/wiki/public/layout-reference/ref-12/reconstructed.png b/apps/wiki/public/layout-reference/ref-12/reconstructed.png new file mode 100644 index 0000000..40c63ff Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/source.png b/apps/wiki/public/layout-reference/ref-12/source.png new file mode 100644 index 0000000..40c63ff Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-12/text-map.png b/apps/wiki/public/layout-reference/ref-12/text-map.png new file mode 100644 index 0000000..bffb148 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-12/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/I01-mask.png b/apps/wiki/public/layout-reference/ref-13/I01-mask.png new file mode 100644 index 0000000..772a800 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/I01.png b/apps/wiki/public/layout-reference/ref-13/I01.png new file mode 100644 index 0000000..79c90db Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/T01-underlay.png b/apps/wiki/public/layout-reference/ref-13/T01-underlay.png new file mode 100644 index 0000000..67bf257 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/T01.png b/apps/wiki/public/layout-reference/ref-13/T01.png new file mode 100644 index 0000000..d8c8dde Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/T02-underlay.png b/apps/wiki/public/layout-reference/ref-13/T02-underlay.png new file mode 100644 index 0000000..3592ac6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/T02.png b/apps/wiki/public/layout-reference/ref-13/T02.png new file mode 100644 index 0000000..9c66e69 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/T03-underlay.png b/apps/wiki/public/layout-reference/ref-13/T03-underlay.png new file mode 100644 index 0000000..7a87f4b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/T03.png b/apps/wiki/public/layout-reference/ref-13/T03.png new file mode 100644 index 0000000..252267d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/T04-underlay.png b/apps/wiki/public/layout-reference/ref-13/T04-underlay.png new file mode 100644 index 0000000..73188e6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/T04.png b/apps/wiki/public/layout-reference/ref-13/T04.png new file mode 100644 index 0000000..9d4bf6e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/T05-underlay.png b/apps/wiki/public/layout-reference/ref-13/T05-underlay.png new file mode 100644 index 0000000..1ba7924 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/T05-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/T05.png b/apps/wiki/public/layout-reference/ref-13/T05.png new file mode 100644 index 0000000..0a81be7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/T05.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/annotated.png b/apps/wiki/public/layout-reference/ref-13/annotated.png new file mode 100644 index 0000000..80e9190 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/background.png b/apps/wiki/public/layout-reference/ref-13/background.png new file mode 100644 index 0000000..ddd125d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/decoration-map.png b/apps/wiki/public/layout-reference/ref-13/decoration-map.png new file mode 100644 index 0000000..3b681bc Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/image-map.png b/apps/wiki/public/layout-reference/ref-13/image-map.png new file mode 100644 index 0000000..8552b80 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/index.html b/apps/wiki/public/layout-reference/ref-13/index.html new file mode 100644 index 0000000..b762188 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-13/index.html @@ -0,0 +1,14 @@ + +ref-13 · 横题与右侧出血扁椭圆

ref-13 / 横题与右侧出血扁椭圆

原图纸底与画框 +版式 +灵感 +标题中央微字(未辨识原字形) +左下分行说明(未辨识原字形) +底部信息(未辨识原字形) + +构件标注

原图第 3 行、第 4 列;114×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-13/manifest.json b/apps/wiki/public/layout-reference/ref-13/manifest.json new file mode 100644 index 0000000..71c8fc5 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-13/manifest.json @@ -0,0 +1,142 @@ +{ + "id": "ref-13", + "name": "横题与右侧出血扁椭圆", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 410, + 114, + 173 + ], + "row": 3, + "column": 4 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-13/source.png", + "annotated": "/layout-reference/ref-13/annotated.png", + "background": "/layout-reference/ref-13/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "顶部左标题", + "box": [ + 8, + 12, + 35, + 16 + ], + "text": "版式", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-13/T01.png", + "pixels": 316, + "underlay": "/layout-reference/ref-13/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "顶部右标题", + "box": [ + 70, + 12, + 34, + 16 + ], + "text": "灵感", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-13/T02.png", + "pixels": 343, + "underlay": "/layout-reference/ref-13/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "标题中央微字", + "box": [ + 48, + 14, + 16, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-13/T03.png", + "pixels": 62, + "underlay": "/layout-reference/ref-13/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "左下分行说明", + "box": [ + 8, + 100, + 29, + 48 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-13/T04.png", + "pixels": 646, + "underlay": "/layout-reference/ref-13/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "底部信息", + "box": [ + 4, + 162, + 103, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-13/T05.png", + "pixels": 248, + "underlay": "/layout-reference/ref-13/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右侧扁椭圆主图", + "box": [ + 8, + 31, + 103, + 119 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-13/I01.png", + "pixels": 8615, + "mask": "/layout-reference/ref-13/I01-mask.png" + } + ], + "ocr": [ + { + "box": [ + 0.07309941752558477, + 0.06743737990125243, + 0.8421052631578948, + 0.10404624277456653 + ], + "confidence": 0.30000001192092896, + "text": "版式=灵感" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 3 + } +} diff --git a/apps/wiki/public/layout-reference/ref-13/reconstructed.png b/apps/wiki/public/layout-reference/ref-13/reconstructed.png new file mode 100644 index 0000000..372571f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/source.png b/apps/wiki/public/layout-reference/ref-13/source.png new file mode 100644 index 0000000..372571f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-13/text-map.png b/apps/wiki/public/layout-reference/ref-13/text-map.png new file mode 100644 index 0000000..e56f761 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-13/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/D01.png b/apps/wiki/public/layout-reference/ref-14/D01.png new file mode 100644 index 0000000..91a50f2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/I01-mask.png b/apps/wiki/public/layout-reference/ref-14/I01-mask.png new file mode 100644 index 0000000..b4ebdc4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/I01.png b/apps/wiki/public/layout-reference/ref-14/I01.png new file mode 100644 index 0000000..1fe12a2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/I02-mask.png b/apps/wiki/public/layout-reference/ref-14/I02-mask.png new file mode 100644 index 0000000..ffab926 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/I02.png b/apps/wiki/public/layout-reference/ref-14/I02.png new file mode 100644 index 0000000..4f9c4bf Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/T01-underlay.png b/apps/wiki/public/layout-reference/ref-14/T01-underlay.png new file mode 100644 index 0000000..7385287 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/T01.png b/apps/wiki/public/layout-reference/ref-14/T01.png new file mode 100644 index 0000000..f42f19f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/T02-underlay.png b/apps/wiki/public/layout-reference/ref-14/T02-underlay.png new file mode 100644 index 0000000..e4442dc Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/T02.png b/apps/wiki/public/layout-reference/ref-14/T02.png new file mode 100644 index 0000000..854fe09 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/T03-underlay.png b/apps/wiki/public/layout-reference/ref-14/T03-underlay.png new file mode 100644 index 0000000..eedbe72 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/T03.png b/apps/wiki/public/layout-reference/ref-14/T03.png new file mode 100644 index 0000000..1f8f0e8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/annotated.png b/apps/wiki/public/layout-reference/ref-14/annotated.png new file mode 100644 index 0000000..3a7606e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/background.png b/apps/wiki/public/layout-reference/ref-14/background.png new file mode 100644 index 0000000..26ece19 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/decoration-map.png b/apps/wiki/public/layout-reference/ref-14/decoration-map.png new file mode 100644 index 0000000..1864af7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/image-map.png b/apps/wiki/public/layout-reference/ref-14/image-map.png new file mode 100644 index 0000000..ee3bfc8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/index.html b/apps/wiki/public/layout-reference/ref-14/index.html new file mode 100644 index 0000000..d0a171a --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-14/index.html @@ -0,0 +1,14 @@ + +ref-14 · 大矩形与小方图及居中横题

ref-14 / 大矩形与小方图及居中横题

原图纸底与画框 +蓝羽毛 版式灵感设计分享 +中部辅助标签(未辨识原字形) +底部两处标识(未辨识原字形) + + + +构件标注

原图第 3 行、第 5 列;113×174 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-14/manifest.json b/apps/wiki/public/layout-reference/ref-14/manifest.json new file mode 100644 index 0000000..1c444b4 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-14/manifest.json @@ -0,0 +1,141 @@ +{ + "id": "ref-14", + "name": "大矩形与小方图及居中横题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 497, + 409, + 113, + 174 + ], + "row": 3, + "column": 5 + }, + "width": 113, + "height": 174, + "reference": "/layout-reference/ref-14/source.png", + "annotated": "/layout-reference/ref-14/annotated.png", + "background": "/layout-reference/ref-14/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "中部横向主标题", + "box": [ + 9, + 77, + 91, + 11 + ], + "text": "蓝羽毛 版式灵感设计分享", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-14/T01.png", + "pixels": 495, + "underlay": "/layout-reference/ref-14/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "中部辅助标签", + "box": [ + 11, + 93, + 40, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-14/T02.png", + "pixels": 147, + "underlay": "/layout-reference/ref-14/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "底部两处标识", + "box": [ + 9, + 147, + 80, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-14/T03.png", + "pixels": 178, + "underlay": "/layout-reference/ref-14/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左上主图", + "box": [ + 9, + 11, + 68, + 66 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-14/I01.png", + "pixels": 4421, + "mask": "/layout-reference/ref-14/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "右下小图", + "box": [ + 57, + 94, + 44, + 38 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-14/I02.png", + "pixels": 1672, + "mask": "/layout-reference/ref-14/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "右上细线阶梯", + "box": [ + 81, + 11, + 21, + 12 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-14/D01.png", + "pixels": 217 + } + ], + "ocr": [ + { + "box": [ + 0.07374630927974439, + 0.45785440622605367, + 0.817109144542773, + 0.04980842911877392 + ], + "confidence": 0.30000001192092896, + "text": "置羽毛 版式煲感设计分享" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19662, + "unreadableText": 2 + } +} diff --git a/apps/wiki/public/layout-reference/ref-14/reconstructed.png b/apps/wiki/public/layout-reference/ref-14/reconstructed.png new file mode 100644 index 0000000..f314f5c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/source.png b/apps/wiki/public/layout-reference/ref-14/source.png new file mode 100644 index 0000000..f314f5c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-14/text-map.png b/apps/wiki/public/layout-reference/ref-14/text-map.png new file mode 100644 index 0000000..f99acee Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-14/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/I01-mask.png b/apps/wiki/public/layout-reference/ref-15/I01-mask.png new file mode 100644 index 0000000..ac222fe Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/I01.png b/apps/wiki/public/layout-reference/ref-15/I01.png new file mode 100644 index 0000000..82ae522 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/I02-mask.png b/apps/wiki/public/layout-reference/ref-15/I02-mask.png new file mode 100644 index 0000000..9b8eaa0 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/I02.png b/apps/wiki/public/layout-reference/ref-15/I02.png new file mode 100644 index 0000000..f5c4bea Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/I03-mask.png b/apps/wiki/public/layout-reference/ref-15/I03-mask.png new file mode 100644 index 0000000..9818050 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/I03-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/I03.png b/apps/wiki/public/layout-reference/ref-15/I03.png new file mode 100644 index 0000000..3d89246 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/I03.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/T01-underlay.png b/apps/wiki/public/layout-reference/ref-15/T01-underlay.png new file mode 100644 index 0000000..5af3951 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/T01.png b/apps/wiki/public/layout-reference/ref-15/T01.png new file mode 100644 index 0000000..f5a3cbd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/T02-underlay.png b/apps/wiki/public/layout-reference/ref-15/T02-underlay.png new file mode 100644 index 0000000..fb833a6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/T02.png b/apps/wiki/public/layout-reference/ref-15/T02.png new file mode 100644 index 0000000..d6d2a7e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/T03-underlay.png b/apps/wiki/public/layout-reference/ref-15/T03-underlay.png new file mode 100644 index 0000000..2f1aebc Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/T03.png b/apps/wiki/public/layout-reference/ref-15/T03.png new file mode 100644 index 0000000..242c1ea Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/T04-underlay.png b/apps/wiki/public/layout-reference/ref-15/T04-underlay.png new file mode 100644 index 0000000..ad7c581 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/T04.png b/apps/wiki/public/layout-reference/ref-15/T04.png new file mode 100644 index 0000000..2566dce Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/annotated.png b/apps/wiki/public/layout-reference/ref-15/annotated.png new file mode 100644 index 0000000..b0475e4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/background.png b/apps/wiki/public/layout-reference/ref-15/background.png new file mode 100644 index 0000000..da8a938 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/decoration-map.png b/apps/wiki/public/layout-reference/ref-15/decoration-map.png new file mode 100644 index 0000000..8eb8355 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/image-map.png b/apps/wiki/public/layout-reference/ref-15/image-map.png new file mode 100644 index 0000000..5ed3e1a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/index.html b/apps/wiki/public/layout-reference/ref-15/index.html new file mode 100644 index 0000000..66b1bb7 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-15/index.html @@ -0,0 +1,15 @@ + +ref-15 · 英文双行刊头与四分之一圆图

ref-15 / 英文双行刊头与四分之一圆图

原图纸底与画框 +bulublue +design +右上说明(未辨识原字形) +BULUBLUE DESIGN + + + +构件标注

原图第 3 行、第 6 列;112×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-15/manifest.json b/apps/wiki/public/layout-reference/ref-15/manifest.json new file mode 100644 index 0000000..5740a26 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-15/manifest.json @@ -0,0 +1,169 @@ +{ + "id": "ref-15", + "name": "英文双行刊头与四分之一圆图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 617, + 409, + 112, + 173 + ], + "row": 3, + "column": 6 + }, + "width": 112, + "height": 173, + "reference": "/layout-reference/ref-15/source.png", + "annotated": "/layout-reference/ref-15/annotated.png", + "background": "/layout-reference/ref-15/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "英文第一行", + "box": [ + 6, + 5, + 75, + 19 + ], + "text": "bulublue", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-15/T01.png", + "pixels": 477, + "underlay": "/layout-reference/ref-15/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "英文第二行", + "box": [ + 6, + 25, + 60, + 18 + ], + "text": "design", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-15/T02.png", + "pixels": 524, + "underlay": "/layout-reference/ref-15/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "右上说明", + "box": [ + 82, + 4, + 26, + 19 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-15/T03.png", + "pixels": 164, + "underlay": "/layout-reference/ref-15/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "底部品牌与角标", + "box": [ + 1, + 164, + 109, + 8 + ], + "text": "BULUBLUE DESIGN", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-15/T04.png", + "pixels": 354, + "underlay": "/layout-reference/ref-15/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "上部弧面主图", + "box": [ + 3, + 26, + 104, + 82 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-15/I01.png", + "pixels": 7070, + "mask": "/layout-reference/ref-15/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "下方左图片", + "box": [ + 3, + 108, + 65, + 52 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-15/I02.png", + "pixels": 3337, + "mask": "/layout-reference/ref-15/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "下方右图片", + "box": [ + 70, + 108, + 36, + 51 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-15/I03.png", + "pixels": 1836, + "mask": "/layout-reference/ref-15/I03-mask.png" + } + ], + "ocr": [ + { + "box": [ + 0.04371143600401779, + 0.05444647915103584, + 0.6863866533551897, + 0.08956561520379858 + ], + "confidence": 1, + "text": "bulublue" + }, + { + "box": [ + 0.04360773550246531, + 0.1459897803830712, + 0.5169511976696195, + 0.10108402377148817 + ], + "confidence": 1, + "text": "design" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19376, + "unreadableText": 1 + } +} diff --git a/apps/wiki/public/layout-reference/ref-15/reconstructed.png b/apps/wiki/public/layout-reference/ref-15/reconstructed.png new file mode 100644 index 0000000..91defd5 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/source.png b/apps/wiki/public/layout-reference/ref-15/source.png new file mode 100644 index 0000000..91defd5 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-15/text-map.png b/apps/wiki/public/layout-reference/ref-15/text-map.png new file mode 100644 index 0000000..c225e2d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-15/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/I01-mask.png b/apps/wiki/public/layout-reference/ref-16/I01-mask.png new file mode 100644 index 0000000..57c0e20 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/I01.png b/apps/wiki/public/layout-reference/ref-16/I01.png new file mode 100644 index 0000000..3056236 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/I02-mask.png b/apps/wiki/public/layout-reference/ref-16/I02-mask.png new file mode 100644 index 0000000..57c0e20 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/I02.png b/apps/wiki/public/layout-reference/ref-16/I02.png new file mode 100644 index 0000000..3a048bc Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/T01-underlay.png b/apps/wiki/public/layout-reference/ref-16/T01-underlay.png new file mode 100644 index 0000000..bfe82cc Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/T01.png b/apps/wiki/public/layout-reference/ref-16/T01.png new file mode 100644 index 0000000..73909ba Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/T02-underlay.png b/apps/wiki/public/layout-reference/ref-16/T02-underlay.png new file mode 100644 index 0000000..ae8df08 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/T02.png b/apps/wiki/public/layout-reference/ref-16/T02.png new file mode 100644 index 0000000..06b80b6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/T03-underlay.png b/apps/wiki/public/layout-reference/ref-16/T03-underlay.png new file mode 100644 index 0000000..25dde2a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/T03.png b/apps/wiki/public/layout-reference/ref-16/T03.png new file mode 100644 index 0000000..e3d5a28 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/T04-underlay.png b/apps/wiki/public/layout-reference/ref-16/T04-underlay.png new file mode 100644 index 0000000..5462379 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/T04.png b/apps/wiki/public/layout-reference/ref-16/T04.png new file mode 100644 index 0000000..8111c82 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/annotated.png b/apps/wiki/public/layout-reference/ref-16/annotated.png new file mode 100644 index 0000000..3684274 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/background.png b/apps/wiki/public/layout-reference/ref-16/background.png new file mode 100644 index 0000000..6311a45 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/decoration-map.png b/apps/wiki/public/layout-reference/ref-16/decoration-map.png new file mode 100644 index 0000000..a026986 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/image-map.png b/apps/wiki/public/layout-reference/ref-16/image-map.png new file mode 100644 index 0000000..4f175cb Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/index.html b/apps/wiki/public/layout-reference/ref-16/index.html new file mode 100644 index 0000000..0358b53 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-16/index.html @@ -0,0 +1,14 @@ + +ref-16 · 上下灰阶色带与底部白区

ref-16 / 上下灰阶色带与底部白区

原图纸底与画框 +高级版式 +蓝羽毛版式 +底部右说明(未辨识原字形) +底部右脚注(未辨识原字形) + + +构件标注

原图第 4 行、第 1 列;113×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-16/manifest.json b/apps/wiki/public/layout-reference/ref-16/manifest.json new file mode 100644 index 0000000..221c4a7 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-16/manifest.json @@ -0,0 +1,142 @@ +{ + "id": "ref-16", + "name": "上下灰阶色带与底部白区", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 15, + 592, + 113, + 173 + ], + "row": 4, + "column": 1 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-16/source.png", + "annotated": "/layout-reference/ref-16/annotated.png", + "background": "/layout-reference/ref-16/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右上竖字", + "box": [ + 83, + 14, + 6, + 25 + ], + "text": "高级版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-16/T01.png", + "pixels": 123, + "underlay": "/layout-reference/ref-16/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "底部左标题", + "box": [ + 9, + 119, + 32, + 3 + ], + "text": "蓝羽毛版式", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-16/T02.png", + "pixels": 71, + "underlay": "/layout-reference/ref-16/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "底部右说明", + "box": [ + 51, + 130, + 45, + 23 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-16/T03.png", + "pixels": 527, + "underlay": "/layout-reference/ref-16/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "底部右脚注", + "box": [ + 51, + 155, + 49, + 5 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-16/T04.png", + "pixels": 144, + "underlay": "/layout-reference/ref-16/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "上部浅色图片区", + "box": [ + 1, + 1, + 109, + 53 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-16/I01.png", + "pixels": 5654, + "mask": "/layout-reference/ref-16/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "中部深色图片区", + "box": [ + 1, + 54, + 109, + 53 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-16/I02.png", + "pixels": 5777, + "mask": "/layout-reference/ref-16/I02-mask.png" + } + ], + "ocr": [ + { + "box": [ + 0.08545858282579882, + 0.6702334819989704, + 0.2804102714786136, + 0.03718236140433073 + ], + "confidence": 0.30000001192092896, + "text": "經引毛飯式" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 2 + } +} diff --git a/apps/wiki/public/layout-reference/ref-16/reconstructed.png b/apps/wiki/public/layout-reference/ref-16/reconstructed.png new file mode 100644 index 0000000..af3f57b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/source.png b/apps/wiki/public/layout-reference/ref-16/source.png new file mode 100644 index 0000000..af3f57b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-16/text-map.png b/apps/wiki/public/layout-reference/ref-16/text-map.png new file mode 100644 index 0000000..b005612 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-16/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/D01.png b/apps/wiki/public/layout-reference/ref-17/D01.png new file mode 100644 index 0000000..ec7e8e7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/D02.png b/apps/wiki/public/layout-reference/ref-17/D02.png new file mode 100644 index 0000000..e7000e7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/D03.png b/apps/wiki/public/layout-reference/ref-17/D03.png new file mode 100644 index 0000000..bc16d58 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/D03.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/I01-mask.png b/apps/wiki/public/layout-reference/ref-17/I01-mask.png new file mode 100644 index 0000000..428bd14 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/I01.png b/apps/wiki/public/layout-reference/ref-17/I01.png new file mode 100644 index 0000000..b4b2519 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/I02-mask.png b/apps/wiki/public/layout-reference/ref-17/I02-mask.png new file mode 100644 index 0000000..9592ca3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/I02.png b/apps/wiki/public/layout-reference/ref-17/I02.png new file mode 100644 index 0000000..28e9fa0 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/T01-underlay.png b/apps/wiki/public/layout-reference/ref-17/T01-underlay.png new file mode 100644 index 0000000..a349623 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/T01.png b/apps/wiki/public/layout-reference/ref-17/T01.png new file mode 100644 index 0000000..31f1d48 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/T02-underlay.png b/apps/wiki/public/layout-reference/ref-17/T02-underlay.png new file mode 100644 index 0000000..481c878 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/T02.png b/apps/wiki/public/layout-reference/ref-17/T02.png new file mode 100644 index 0000000..bdada2f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/T03-underlay.png b/apps/wiki/public/layout-reference/ref-17/T03-underlay.png new file mode 100644 index 0000000..93722ce Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/T03.png b/apps/wiki/public/layout-reference/ref-17/T03.png new file mode 100644 index 0000000..3d134e2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/T04-underlay.png b/apps/wiki/public/layout-reference/ref-17/T04-underlay.png new file mode 100644 index 0000000..2d58471 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/T04.png b/apps/wiki/public/layout-reference/ref-17/T04.png new file mode 100644 index 0000000..471f679 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/annotated.png b/apps/wiki/public/layout-reference/ref-17/annotated.png new file mode 100644 index 0000000..d1bff37 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/background.png b/apps/wiki/public/layout-reference/ref-17/background.png new file mode 100644 index 0000000..4412150 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/decoration-map.png b/apps/wiki/public/layout-reference/ref-17/decoration-map.png new file mode 100644 index 0000000..c190e85 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/image-map.png b/apps/wiki/public/layout-reference/ref-17/image-map.png new file mode 100644 index 0000000..2ee0bd3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/index.html b/apps/wiki/public/layout-reference/ref-17/index.html new file mode 100644 index 0000000..c2d5ed9 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-17/index.html @@ -0,0 +1,17 @@ + +ref-17 · 英文刊头与圆形叠标及窄栏

ref-17 / 英文刊头与圆形叠标及窄栏

原图纸底与画框 + +Bulublue +Design +高级感版式. +右侧窄栏正文(未辨识原字形) + + + + +构件标注

原图第 4 行、第 2 列;113×174 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-17/manifest.json b/apps/wiki/public/layout-reference/ref-17/manifest.json new file mode 100644 index 0000000..6dec2b6 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-17/manifest.json @@ -0,0 +1,210 @@ +{ + "id": "ref-17", + "name": "英文刊头与圆形叠标及窄栏", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 135, + 591, + 113, + 174 + ], + "row": 4, + "column": 2 + }, + "width": 113, + "height": 174, + "reference": "/layout-reference/ref-17/source.png", + "annotated": "/layout-reference/ref-17/annotated.png", + "background": "/layout-reference/ref-17/background.png", + "elements": [ + { + "id": "D01", + "kind": "decoration", + "role": "右栏底线", + "box": [ + 82, + 121, + 29, + 2 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-17/D01.png", + "pixels": 30 + }, + { + "id": "T01", + "kind": "text", + "role": "左上英文第一行", + "box": [ + 6, + 10, + 63, + 10 + ], + "text": "Bulublue", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-17/T01.png", + "pixels": 277, + "underlay": "/layout-reference/ref-17/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左上英文第二行", + "box": [ + 5, + 20, + 56, + 16 + ], + "text": "Design", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-17/T02.png", + "pixels": 423, + "underlay": "/layout-reference/ref-17/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "中部中文横题", + "box": [ + 51, + 50, + 60, + 16 + ], + "text": "高级感版式.", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-17/T03.png", + "pixels": 459, + "underlay": "/layout-reference/ref-17/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右侧窄栏正文", + "box": [ + 82, + 67, + 29, + 54 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-17/T04.png", + "pixels": 329, + "underlay": "/layout-reference/ref-17/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左下主图", + "box": [ + 5, + 68, + 73, + 101 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-17/I01.png", + "pixels": 7161, + "mask": "/layout-reference/ref-17/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "左中叠加圆形", + "box": [ + 5, + 53, + 22, + 22 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-17/I02.png", + "pixels": 372, + "mask": "/layout-reference/ref-17/I02-mask.png" + }, + { + "id": "D02", + "kind": "decoration", + "role": "刊头右侧双线", + "box": [ + 61, + 27, + 50, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-17/D02.png", + "pixels": 253 + }, + { + "id": "D03", + "kind": "decoration", + "role": "底部横向贴条", + "box": [ + 58, + 167, + 54, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-17/D03.png", + "pixels": 324 + } + ], + "ocr": [ + { + "box": [ + 0.05014749428466078, + 0.0651340998323755, + 0.5663716814159292, + 0.06896551724137923 + ], + "confidence": 1, + "text": "Bulublue" + }, + { + "box": [ + 0.04661209192494646, + 0.1362427019870669, + 0.4878967645245668, + 0.07617359965240367 + ], + "confidence": 0.30000001192092896, + "text": "Design" + }, + { + "box": [ + 0.447888041843808, + 0.30109252421060173, + 0.5496516494976031, + 0.07597587117746873 + ], + "confidence": 0.5, + "text": "高级感版式," + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19662, + "unreadableText": 1 + } +} diff --git a/apps/wiki/public/layout-reference/ref-17/reconstructed.png b/apps/wiki/public/layout-reference/ref-17/reconstructed.png new file mode 100644 index 0000000..7bca366 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/source.png b/apps/wiki/public/layout-reference/ref-17/source.png new file mode 100644 index 0000000..7bca366 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-17/text-map.png b/apps/wiki/public/layout-reference/ref-17/text-map.png new file mode 100644 index 0000000..c0587ab Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-17/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/D01.png b/apps/wiki/public/layout-reference/ref-18/D01.png new file mode 100644 index 0000000..b9e5c05 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/D02.png b/apps/wiki/public/layout-reference/ref-18/D02.png new file mode 100644 index 0000000..246202c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/I01-mask.png b/apps/wiki/public/layout-reference/ref-18/I01-mask.png new file mode 100644 index 0000000..98af0f6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/I01.png b/apps/wiki/public/layout-reference/ref-18/I01.png new file mode 100644 index 0000000..a4d56d5 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/T01-underlay.png b/apps/wiki/public/layout-reference/ref-18/T01-underlay.png new file mode 100644 index 0000000..a4c3676 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/T01.png b/apps/wiki/public/layout-reference/ref-18/T01.png new file mode 100644 index 0000000..e03ba71 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/T02-underlay.png b/apps/wiki/public/layout-reference/ref-18/T02-underlay.png new file mode 100644 index 0000000..e018b05 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/T02.png b/apps/wiki/public/layout-reference/ref-18/T02.png new file mode 100644 index 0000000..2dacbe3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/T03-underlay.png b/apps/wiki/public/layout-reference/ref-18/T03-underlay.png new file mode 100644 index 0000000..e0edcd7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/T03.png b/apps/wiki/public/layout-reference/ref-18/T03.png new file mode 100644 index 0000000..64d4caf Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/T04-underlay.png b/apps/wiki/public/layout-reference/ref-18/T04-underlay.png new file mode 100644 index 0000000..81b0577 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/T04.png b/apps/wiki/public/layout-reference/ref-18/T04.png new file mode 100644 index 0000000..64f2434 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/annotated.png b/apps/wiki/public/layout-reference/ref-18/annotated.png new file mode 100644 index 0000000..5d173b3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/background.png b/apps/wiki/public/layout-reference/ref-18/background.png new file mode 100644 index 0000000..79e6e2d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/decoration-map.png b/apps/wiki/public/layout-reference/ref-18/decoration-map.png new file mode 100644 index 0000000..8b48332 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/image-map.png b/apps/wiki/public/layout-reference/ref-18/image-map.png new file mode 100644 index 0000000..554a442 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/index.html b/apps/wiki/public/layout-reference/ref-18/index.html new file mode 100644 index 0000000..4cd5e8b --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-18/index.html @@ -0,0 +1,15 @@ + +ref-18 · 上大图与下方英文双行

ref-18 / 上大图与下方英文双行

原图纸底与画框 +左上微标识(未辨识原字形) +Bulublue +Design +底部短信息组(未辨识原字形) + + + +构件标注

原图第 4 行、第 3 列;113×174 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-18/manifest.json b/apps/wiki/public/layout-reference/ref-18/manifest.json new file mode 100644 index 0000000..d0628bd --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-18/manifest.json @@ -0,0 +1,167 @@ +{ + "id": "ref-18", + "name": "上大图与下方英文双行", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 591, + 113, + 174 + ], + "row": 4, + "column": 3 + }, + "width": 113, + "height": 174, + "reference": "/layout-reference/ref-18/source.png", + "annotated": "/layout-reference/ref-18/annotated.png", + "background": "/layout-reference/ref-18/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "左上微标识", + "box": [ + 0, + 4, + 8, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-18/T01.png", + "pixels": 34, + "underlay": "/layout-reference/ref-18/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "下方英文第一行", + "box": [ + 5, + 108, + 75, + 17 + ], + "text": "Bulublue", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-18/T02.png", + "pixels": 471, + "underlay": "/layout-reference/ref-18/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "下方英文第二行", + "box": [ + 5, + 125, + 74, + 17 + ], + "text": "Design", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-18/T03.png", + "pixels": 435, + "underlay": "/layout-reference/ref-18/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "底部短信息组", + "box": [ + 2, + 155, + 102, + 16 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-18/T04.png", + "pixels": 418, + "underlay": "/layout-reference/ref-18/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "上方主图", + "box": [ + 19, + 6, + 88, + 91 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-18/I01.png", + "pixels": 7995, + "mask": "/layout-reference/ref-18/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左侧竖向刻度", + "box": [ + 0, + 65, + 5, + 29 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-18/D01.png", + "pixels": 112 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右下椭圆线组", + "box": [ + 76, + 128, + 34, + 19 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-18/D02.png", + "pixels": 441 + } + ], + "ocr": [ + { + "box": [ + 0.03818345576318917, + 0.6239403036164336, + 0.6846950384719533, + 0.08353701770534006 + ], + "confidence": 0.5, + "text": "Bulublue" + }, + { + "box": [ + 0.03602924893711706, + 0.6949484790717884, + 0.7361454921486105, + 0.14112464495545596 + ], + "confidence": 0.30000001192092896, + "text": "Design m" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19662, + "unreadableText": 2 + } +} diff --git a/apps/wiki/public/layout-reference/ref-18/reconstructed.png b/apps/wiki/public/layout-reference/ref-18/reconstructed.png new file mode 100644 index 0000000..047b7a3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/source.png b/apps/wiki/public/layout-reference/ref-18/source.png new file mode 100644 index 0000000..047b7a3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-18/text-map.png b/apps/wiki/public/layout-reference/ref-18/text-map.png new file mode 100644 index 0000000..5a95908 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-18/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/D01.png b/apps/wiki/public/layout-reference/ref-19/D01.png new file mode 100644 index 0000000..2e4ed06 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/D02.png b/apps/wiki/public/layout-reference/ref-19/D02.png new file mode 100644 index 0000000..abc750c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/D03.png b/apps/wiki/public/layout-reference/ref-19/D03.png new file mode 100644 index 0000000..dd675ec Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/D03.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/I01-mask.png b/apps/wiki/public/layout-reference/ref-19/I01-mask.png new file mode 100644 index 0000000..9e7cc13 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/I01.png b/apps/wiki/public/layout-reference/ref-19/I01.png new file mode 100644 index 0000000..8101768 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/I02-mask.png b/apps/wiki/public/layout-reference/ref-19/I02-mask.png new file mode 100644 index 0000000..3b99e39 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/I02.png b/apps/wiki/public/layout-reference/ref-19/I02.png new file mode 100644 index 0000000..9a7d71a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/I03-mask.png b/apps/wiki/public/layout-reference/ref-19/I03-mask.png new file mode 100644 index 0000000..69c1d80 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/I03-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/I03.png b/apps/wiki/public/layout-reference/ref-19/I03.png new file mode 100644 index 0000000..920f6c5 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/I03.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T01-underlay.png b/apps/wiki/public/layout-reference/ref-19/T01-underlay.png new file mode 100644 index 0000000..28aadfe Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T01.png b/apps/wiki/public/layout-reference/ref-19/T01.png new file mode 100644 index 0000000..471733d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T02-underlay.png b/apps/wiki/public/layout-reference/ref-19/T02-underlay.png new file mode 100644 index 0000000..dfb45bb Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T02.png b/apps/wiki/public/layout-reference/ref-19/T02.png new file mode 100644 index 0000000..4c859c0 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T03-underlay.png b/apps/wiki/public/layout-reference/ref-19/T03-underlay.png new file mode 100644 index 0000000..84471c5 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T03.png b/apps/wiki/public/layout-reference/ref-19/T03.png new file mode 100644 index 0000000..1071b13 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T04-underlay.png b/apps/wiki/public/layout-reference/ref-19/T04-underlay.png new file mode 100644 index 0000000..48befdd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T04.png b/apps/wiki/public/layout-reference/ref-19/T04.png new file mode 100644 index 0000000..fbb09f2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T05-underlay.png b/apps/wiki/public/layout-reference/ref-19/T05-underlay.png new file mode 100644 index 0000000..7b046fe Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T05-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T05.png b/apps/wiki/public/layout-reference/ref-19/T05.png new file mode 100644 index 0000000..cce56cd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T05.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T06-underlay.png b/apps/wiki/public/layout-reference/ref-19/T06-underlay.png new file mode 100644 index 0000000..f0a7213 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T06-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/T06.png b/apps/wiki/public/layout-reference/ref-19/T06.png new file mode 100644 index 0000000..6d86af4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/T06.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/annotated.png b/apps/wiki/public/layout-reference/ref-19/annotated.png new file mode 100644 index 0000000..0a84498 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/background.png b/apps/wiki/public/layout-reference/ref-19/background.png new file mode 100644 index 0000000..3704c3d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/decoration-map.png b/apps/wiki/public/layout-reference/ref-19/decoration-map.png new file mode 100644 index 0000000..44ba25d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/image-map.png b/apps/wiki/public/layout-reference/ref-19/image-map.png new file mode 100644 index 0000000..28c2842 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/index.html b/apps/wiki/public/layout-reference/ref-19/index.html new file mode 100644 index 0000000..ac34dd6 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-19/index.html @@ -0,0 +1,20 @@ + +ref-19 · 四角大字与中央双圆竖题

ref-19 / 四角大字与中央双圆竖题

原图纸底与画框 +高 +级 +排 +版 +蓝羽毛の版式灵感 +右侧竖向微字(未辨识原字形) + + + + + + +构件标注

原图第 4 行、第 4 列;113×171 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-19/manifest.json b/apps/wiki/public/layout-reference/ref-19/manifest.json new file mode 100644 index 0000000..20642d5 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-19/manifest.json @@ -0,0 +1,271 @@ +{ + "id": "ref-19", + "name": "四角大字与中央双圆竖题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 593, + 113, + 171 + ], + "row": 4, + "column": 4 + }, + "width": 113, + "height": 171, + "reference": "/layout-reference/ref-19/source.png", + "annotated": "/layout-reference/ref-19/annotated.png", + "background": "/layout-reference/ref-19/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "左上大字", + "box": [ + 1, + 1, + 31, + 36 + ], + "text": "高", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-19/T01.png", + "pixels": 401, + "underlay": "/layout-reference/ref-19/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "右上大字", + "box": [ + 78, + 0, + 33, + 37 + ], + "text": "级", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-19/T02.png", + "pixels": 455, + "underlay": "/layout-reference/ref-19/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "左下大字", + "box": [ + 1, + 132, + 35, + 39 + ], + "text": "排", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-19/T03.png", + "pixels": 511, + "underlay": "/layout-reference/ref-19/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右下大字", + "box": [ + 77, + 133, + 35, + 38 + ], + "text": "版", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-19/T04.png", + "pixels": 590, + "underlay": "/layout-reference/ref-19/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "中央竖排标题", + "box": [ + 49, + 37, + 17, + 87 + ], + "text": "蓝羽毛の版式灵感", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-19/T05.png", + "pixels": 482, + "underlay": "/layout-reference/ref-19/T05-underlay.png" + }, + { + "id": "T06", + "kind": "text", + "role": "右侧竖向微字", + "box": [ + 103, + 50, + 9, + 57 + ], + "text": null, + "direction": "vertical", + "reading": "unreadable", + "asset": "/layout-reference/ref-19/T06.png", + "pixels": 303, + "underlay": "/layout-reference/ref-19/T06-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "顶部出血椭圆", + "box": [ + 1, + 1, + 109, + 58 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/I01.png", + "pixels": 4172, + "mask": "/layout-reference/ref-19/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "中央圆形图位", + "box": [ + 27, + 44, + 58, + 57 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/I02.png", + "pixels": 2238, + "mask": "/layout-reference/ref-19/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "底部小椭圆", + "box": [ + 45, + 135, + 22, + 17 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/I03.png", + "pixels": 283, + "mask": "/layout-reference/ref-19/I03-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "中部左线组", + "box": [ + 0, + 105, + 47, + 29 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/D01.png", + "pixels": 818 + }, + { + "id": "D02", + "kind": "decoration", + "role": "中部右线组", + "box": [ + 68, + 112, + 39, + 22 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/D02.png", + "pixels": 435 + }, + { + "id": "D03", + "kind": "decoration", + "role": "底部短线", + "box": [ + 43, + 157, + 26, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-19/D03.png", + "pixels": 76 + } + ], + "ocr": [ + { + "box": [ + 0.04129793498384601, + 0.015594541432284448, + 0.22713864306784656, + 0.2007797270955165 + ], + "confidence": 1, + "text": "高" + }, + { + "box": [ + 0.03244837751659291, + 0.7076023384685672, + 0.23893805309734517, + 0.22807017543859653 + ], + "confidence": 1, + "text": "排" + }, + { + "box": [ + 0.6961651915855457, + -5.311890927117702e-10, + 0.23303834808259583, + 0.21247563352826515 + ], + "confidence": 1, + "text": "级" + }, + { + "box": [ + 0.7050147490689528, + 0.7173489271929825, + 0.2271386430678467, + 0.21832358674463936 + ], + "confidence": 1, + "text": "版" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19323, + "unreadableText": 1 + } +} diff --git a/apps/wiki/public/layout-reference/ref-19/reconstructed.png b/apps/wiki/public/layout-reference/ref-19/reconstructed.png new file mode 100644 index 0000000..e5484ce Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/source.png b/apps/wiki/public/layout-reference/ref-19/source.png new file mode 100644 index 0000000..e5484ce Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-19/text-map.png b/apps/wiki/public/layout-reference/ref-19/text-map.png new file mode 100644 index 0000000..e6c18fd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-19/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/D01.png b/apps/wiki/public/layout-reference/ref-20/D01.png new file mode 100644 index 0000000..0887714 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/D02.png b/apps/wiki/public/layout-reference/ref-20/D02.png new file mode 100644 index 0000000..54cea0a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/I01-mask.png b/apps/wiki/public/layout-reference/ref-20/I01-mask.png new file mode 100644 index 0000000..657d399 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/I01.png b/apps/wiki/public/layout-reference/ref-20/I01.png new file mode 100644 index 0000000..c32fd43 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/I02-mask.png b/apps/wiki/public/layout-reference/ref-20/I02-mask.png new file mode 100644 index 0000000..88e11c5 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/I02.png b/apps/wiki/public/layout-reference/ref-20/I02.png new file mode 100644 index 0000000..3e368c2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/T01-underlay.png b/apps/wiki/public/layout-reference/ref-20/T01-underlay.png new file mode 100644 index 0000000..cf2fcee Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/T01.png b/apps/wiki/public/layout-reference/ref-20/T01.png new file mode 100644 index 0000000..9f6c620 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/T02-underlay.png b/apps/wiki/public/layout-reference/ref-20/T02-underlay.png new file mode 100644 index 0000000..2a2001e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/T02.png b/apps/wiki/public/layout-reference/ref-20/T02.png new file mode 100644 index 0000000..1e66d80 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/T03-underlay.png b/apps/wiki/public/layout-reference/ref-20/T03-underlay.png new file mode 100644 index 0000000..4cefcd7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/T03.png b/apps/wiki/public/layout-reference/ref-20/T03.png new file mode 100644 index 0000000..f48c1aa Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/annotated.png b/apps/wiki/public/layout-reference/ref-20/annotated.png new file mode 100644 index 0000000..17941a9 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/background.png b/apps/wiki/public/layout-reference/ref-20/background.png new file mode 100644 index 0000000..ae237fd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/decoration-map.png b/apps/wiki/public/layout-reference/ref-20/decoration-map.png new file mode 100644 index 0000000..e2cf76e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/image-map.png b/apps/wiki/public/layout-reference/ref-20/image-map.png new file mode 100644 index 0000000..69fd496 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/index.html b/apps/wiki/public/layout-reference/ref-20/index.html new file mode 100644 index 0000000..14a362c --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-20/index.html @@ -0,0 +1,15 @@ + +ref-20 · 右上大弧面与左下圆形标题

ref-20 / 右上大弧面与左下圆形标题

原图纸底与画框 +高级 +版式 +右下短注(未辨识原字形) + + + + +构件标注

原图第 4 行、第 5 列;114×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-20/manifest.json b/apps/wiki/public/layout-reference/ref-20/manifest.json new file mode 100644 index 0000000..7e43965 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-20/manifest.json @@ -0,0 +1,157 @@ +{ + "id": "ref-20", + "name": "右上大弧面与左下圆形标题", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 496, + 592, + 114, + 173 + ], + "row": 4, + "column": 5 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-20/source.png", + "annotated": "/layout-reference/ref-20/annotated.png", + "background": "/layout-reference/ref-20/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "圆中第一行", + "box": [ + 22, + 102, + 36, + 15 + ], + "text": "高级", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-20/T01.png", + "pixels": 229, + "underlay": "/layout-reference/ref-20/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "圆中第二行", + "box": [ + 21, + 123, + 39, + 18 + ], + "text": "版式", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-20/T02.png", + "pixels": 219, + "underlay": "/layout-reference/ref-20/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "右下短注", + "box": [ + 72, + 158, + 32, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-20/T03.png", + "pixels": 92, + "underlay": "/layout-reference/ref-20/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右上出血椭圆", + "box": [ + 19, + 1, + 94, + 124 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-20/I01.png", + "pixels": 9205, + "mask": "/layout-reference/ref-20/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "左下叠加圆", + "box": [ + 8, + 90, + 61, + 59 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-20/I02.png", + "pixels": 2269, + "mask": "/layout-reference/ref-20/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左上竖线", + "box": [ + 8, + 18, + 4, + 53 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-20/D01.png", + "pixels": 211 + }, + { + "id": "D02", + "kind": "decoration", + "role": "左下竖线", + "box": [ + 29, + 151, + 3, + 22 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-20/D02.png", + "pixels": 48 + } + ], + "ocr": [ + { + "box": [ + 0.19446010141722203, + 0.583293929900469, + 0.3181837650767544, + 0.09925391724573618 + ], + "confidence": 0.30000001192092896, + "text": "高级" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 1 + } +} diff --git a/apps/wiki/public/layout-reference/ref-20/reconstructed.png b/apps/wiki/public/layout-reference/ref-20/reconstructed.png new file mode 100644 index 0000000..22637da Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/source.png b/apps/wiki/public/layout-reference/ref-20/source.png new file mode 100644 index 0000000..22637da Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-20/text-map.png b/apps/wiki/public/layout-reference/ref-20/text-map.png new file mode 100644 index 0000000..ca0a33b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-20/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/D01.png b/apps/wiki/public/layout-reference/ref-21/D01.png new file mode 100644 index 0000000..c69e0c9 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/D02.png b/apps/wiki/public/layout-reference/ref-21/D02.png new file mode 100644 index 0000000..35bb9ec Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/D03.png b/apps/wiki/public/layout-reference/ref-21/D03.png new file mode 100644 index 0000000..6b23b26 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/D03.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/D04.png b/apps/wiki/public/layout-reference/ref-21/D04.png new file mode 100644 index 0000000..2f8d931 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/D04.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/D05.png b/apps/wiki/public/layout-reference/ref-21/D05.png new file mode 100644 index 0000000..4173b3a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/D05.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/I01-mask.png b/apps/wiki/public/layout-reference/ref-21/I01-mask.png new file mode 100644 index 0000000..ddf80f8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/I01.png b/apps/wiki/public/layout-reference/ref-21/I01.png new file mode 100644 index 0000000..c2bbf1e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/I02-mask.png b/apps/wiki/public/layout-reference/ref-21/I02-mask.png new file mode 100644 index 0000000..b5fb0dd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/I02.png b/apps/wiki/public/layout-reference/ref-21/I02.png new file mode 100644 index 0000000..33968de Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T01-underlay.png b/apps/wiki/public/layout-reference/ref-21/T01-underlay.png new file mode 100644 index 0000000..d0bbf72 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T01.png b/apps/wiki/public/layout-reference/ref-21/T01.png new file mode 100644 index 0000000..0643432 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T02-underlay.png b/apps/wiki/public/layout-reference/ref-21/T02-underlay.png new file mode 100644 index 0000000..f5f4616 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T02.png b/apps/wiki/public/layout-reference/ref-21/T02.png new file mode 100644 index 0000000..0dec89c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T03-underlay.png b/apps/wiki/public/layout-reference/ref-21/T03-underlay.png new file mode 100644 index 0000000..fe82956 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T03.png b/apps/wiki/public/layout-reference/ref-21/T03.png new file mode 100644 index 0000000..268f099 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T04-underlay.png b/apps/wiki/public/layout-reference/ref-21/T04-underlay.png new file mode 100644 index 0000000..354a033 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T04.png b/apps/wiki/public/layout-reference/ref-21/T04.png new file mode 100644 index 0000000..59b5040 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T05-underlay.png b/apps/wiki/public/layout-reference/ref-21/T05-underlay.png new file mode 100644 index 0000000..db37fea Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T05-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T05.png b/apps/wiki/public/layout-reference/ref-21/T05.png new file mode 100644 index 0000000..24d5809 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T05.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T06-underlay.png b/apps/wiki/public/layout-reference/ref-21/T06-underlay.png new file mode 100644 index 0000000..2850604 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T06-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/T06.png b/apps/wiki/public/layout-reference/ref-21/T06.png new file mode 100644 index 0000000..17cee9f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/T06.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/annotated.png b/apps/wiki/public/layout-reference/ref-21/annotated.png new file mode 100644 index 0000000..d5de824 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/background.png b/apps/wiki/public/layout-reference/ref-21/background.png new file mode 100644 index 0000000..59a920b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/decoration-map.png b/apps/wiki/public/layout-reference/ref-21/decoration-map.png new file mode 100644 index 0000000..62022b5 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/image-map.png b/apps/wiki/public/layout-reference/ref-21/image-map.png new file mode 100644 index 0000000..add1d44 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/index.html b/apps/wiki/public/layout-reference/ref-21/index.html new file mode 100644 index 0000000..9db8c0d --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-21/index.html @@ -0,0 +1,21 @@ + +ref-21 · 右侧旋转英文与节点方图

ref-21 / 右侧旋转英文与节点方图

原图纸底与画框 +Bulublue +25 +03 +2025 +中下说明(未辨识原字形) +底部两块微字(未辨识原字形) + + + + + + + +构件标注

原图第 4 行、第 6 列;114×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-21/manifest.json b/apps/wiki/public/layout-reference/ref-21/manifest.json new file mode 100644 index 0000000..2951852 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-21/manifest.json @@ -0,0 +1,276 @@ +{ + "id": "ref-21", + "name": "右侧旋转英文与节点方图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 616, + 592, + 114, + 173 + ], + "row": 4, + "column": 6 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-21/source.png", + "annotated": "/layout-reference/ref-21/annotated.png", + "background": "/layout-reference/ref-21/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧旋转英文", + "box": [ + 87, + 2, + 25, + 109 + ], + "text": "Bulublue", + "direction": "rotated", + "reading": "verified", + "asset": "/layout-reference/ref-21/T01.png", + "pixels": 1020, + "underlay": "/layout-reference/ref-21/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左日期", + "box": [ + 1, + 108, + 14, + 11 + ], + "text": "25", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-21/T02.png", + "pixels": 46, + "underlay": "/layout-reference/ref-21/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "右日期", + "box": [ + 97, + 113, + 11, + 8 + ], + "text": "03", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-21/T03.png", + "pixels": 59, + "underlay": "/layout-reference/ref-21/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右年份", + "box": [ + 85, + 124, + 23, + 9 + ], + "text": "2025", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-21/T04.png", + "pixels": 116, + "underlay": "/layout-reference/ref-21/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "中下说明", + "box": [ + 3, + 128, + 67, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-21/T05.png", + "pixels": 287, + "underlay": "/layout-reference/ref-21/T05-underlay.png" + }, + { + "id": "T06", + "kind": "text", + "role": "底部两块微字", + "box": [ + 5, + 147, + 75, + 15 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-21/T06.png", + "pixels": 603, + "underlay": "/layout-reference/ref-21/T06-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左上主图", + "box": [ + 3, + 4, + 76, + 100 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/I01.png", + "pixels": 7379, + "mask": "/layout-reference/ref-21/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "底部灰色信息区", + "box": [ + 1, + 135, + 110, + 35 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/I02.png", + "pixels": 3138, + "mask": "/layout-reference/ref-21/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "上方圆节点", + "box": [ + 28, + 12, + 9, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/D01.png", + "pixels": 64 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右上圆节点", + "box": [ + 75, + 29, + 11, + 14 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/D02.png", + "pixels": 87 + }, + { + "id": "D03", + "kind": "decoration", + "role": "下方圆节点", + "box": [ + 46, + 99, + 11, + 12 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/D03.png", + "pixels": 80 + }, + { + "id": "D04", + "kind": "decoration", + "role": "右下圆节点", + "box": [ + 97, + 101, + 11, + 9 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/D04.png", + "pixels": 6 + }, + { + "id": "D05", + "kind": "decoration", + "role": "日期间椭圆线", + "box": [ + 17, + 112, + 77, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-21/D05.png", + "pixels": 200 + } + ], + "ocr": [ + { + "box": [ + 0.03216374201388889, + 0.6512524085500964, + 0.10818713450292397, + 0.046242774566473965 + ], + "confidence": 1, + "text": "25" + }, + { + "box": [ + 0.7009572502841679, + 0.02139049098390966, + 0.2679496675904034, + 0.6943671018861391 + ], + "confidence": 0.30000001192092896, + "text": "Bulublue:" + }, + { + "box": [ + 0.7424248804406856, + 0.7201085946235993, + 0.2110566702502512, + 0.049185508478124196 + ], + "confidence": 1, + "text": "2025" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 2 + } +} diff --git a/apps/wiki/public/layout-reference/ref-21/reconstructed.png b/apps/wiki/public/layout-reference/ref-21/reconstructed.png new file mode 100644 index 0000000..1d398f7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/source.png b/apps/wiki/public/layout-reference/ref-21/source.png new file mode 100644 index 0000000..1d398f7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-21/text-map.png b/apps/wiki/public/layout-reference/ref-21/text-map.png new file mode 100644 index 0000000..8263d63 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-21/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/I01-mask.png b/apps/wiki/public/layout-reference/ref-22/I01-mask.png new file mode 100644 index 0000000..8c30001 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/I01.png b/apps/wiki/public/layout-reference/ref-22/I01.png new file mode 100644 index 0000000..491249f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/I02-mask.png b/apps/wiki/public/layout-reference/ref-22/I02-mask.png new file mode 100644 index 0000000..73e5dec Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/I02.png b/apps/wiki/public/layout-reference/ref-22/I02.png new file mode 100644 index 0000000..5fab431 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/I03-mask.png b/apps/wiki/public/layout-reference/ref-22/I03-mask.png new file mode 100644 index 0000000..a24d030 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/I03-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/I03.png b/apps/wiki/public/layout-reference/ref-22/I03.png new file mode 100644 index 0000000..a26d5f8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/I03.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T01-underlay.png b/apps/wiki/public/layout-reference/ref-22/T01-underlay.png new file mode 100644 index 0000000..6334ffc Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T01.png b/apps/wiki/public/layout-reference/ref-22/T01.png new file mode 100644 index 0000000..0ab3d1c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T02-underlay.png b/apps/wiki/public/layout-reference/ref-22/T02-underlay.png new file mode 100644 index 0000000..ee0eacd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T02.png b/apps/wiki/public/layout-reference/ref-22/T02.png new file mode 100644 index 0000000..91c93b4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T03-underlay.png b/apps/wiki/public/layout-reference/ref-22/T03-underlay.png new file mode 100644 index 0000000..ab62a9e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T03.png b/apps/wiki/public/layout-reference/ref-22/T03.png new file mode 100644 index 0000000..6221254 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T04-underlay.png b/apps/wiki/public/layout-reference/ref-22/T04-underlay.png new file mode 100644 index 0000000..f697d77 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T04.png b/apps/wiki/public/layout-reference/ref-22/T04.png new file mode 100644 index 0000000..f29665a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T05-underlay.png b/apps/wiki/public/layout-reference/ref-22/T05-underlay.png new file mode 100644 index 0000000..bc2ab02 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T05-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T05.png b/apps/wiki/public/layout-reference/ref-22/T05.png new file mode 100644 index 0000000..21cc9b6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T05.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T06-underlay.png b/apps/wiki/public/layout-reference/ref-22/T06-underlay.png new file mode 100644 index 0000000..6104559 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T06-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/T06.png b/apps/wiki/public/layout-reference/ref-22/T06.png new file mode 100644 index 0000000..33858a5 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/T06.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/annotated.png b/apps/wiki/public/layout-reference/ref-22/annotated.png new file mode 100644 index 0000000..13d9bb4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/background.png b/apps/wiki/public/layout-reference/ref-22/background.png new file mode 100644 index 0000000..56d2774 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/decoration-map.png b/apps/wiki/public/layout-reference/ref-22/decoration-map.png new file mode 100644 index 0000000..a026986 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/image-map.png b/apps/wiki/public/layout-reference/ref-22/image-map.png new file mode 100644 index 0000000..2a28cee Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/index.html b/apps/wiki/public/layout-reference/ref-22/index.html new file mode 100644 index 0000000..74b4d3f --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-22/index.html @@ -0,0 +1,17 @@ + +ref-22 · 三段斜切背景与右侧白字

ref-22 / 三段斜切背景与右侧白字

原图纸底与画框 +蓝羽毛版式 +左上说明(未辨识原字形) +左中说明(未辨识原字形) +左下说明(未辨识原字形) +右下日期(未辨识原字形) +底部说明(未辨识原字形) + + + +构件标注

原图第 5 行、第 1 列;113×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-22/manifest.json b/apps/wiki/public/layout-reference/ref-22/manifest.json new file mode 100644 index 0000000..7a3d914 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-22/manifest.json @@ -0,0 +1,182 @@ +{ + "id": "ref-22", + "name": "三段斜切背景与右侧白字", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 15, + 774, + 113, + 173 + ], + "row": 5, + "column": 1 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-22/source.png", + "annotated": "/layout-reference/ref-22/annotated.png", + "background": "/layout-reference/ref-22/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右侧竖排主标题", + "box": [ + 82, + 0, + 29, + 146 + ], + "text": "蓝羽毛版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-22/T01.png", + "pixels": 3039, + "underlay": "/layout-reference/ref-22/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左上说明", + "box": [ + 4, + 37, + 35, + 11 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-22/T02.png", + "pixels": 160, + "underlay": "/layout-reference/ref-22/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "左中说明", + "box": [ + 2, + 74, + 35, + 24 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-22/T03.png", + "pixels": 417, + "underlay": "/layout-reference/ref-22/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "左下说明", + "box": [ + 3, + 108, + 39, + 20 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-22/T04.png", + "pixels": 430, + "underlay": "/layout-reference/ref-22/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "右下日期", + "box": [ + 74, + 144, + 34, + 12 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-22/T05.png", + "pixels": 209, + "underlay": "/layout-reference/ref-22/T05-underlay.png" + }, + { + "id": "T06", + "kind": "text", + "role": "底部说明", + "box": [ + 3, + 155, + 62, + 14 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-22/T06.png", + "pixels": 373, + "underlay": "/layout-reference/ref-22/T06-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "顶部浅色斜切图", + "box": [ + 1, + 1, + 81, + 66 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-22/I01.png", + "pixels": 4545, + "mask": "/layout-reference/ref-22/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "中部深色斜带图", + "box": [ + 1, + 33, + 111, + 117 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-22/I02.png", + "pixels": 5013, + "mask": "/layout-reference/ref-22/I02-mask.png" + }, + { + "id": "I03", + "kind": "image", + "role": "底部灰色斜切图", + "box": [ + 1, + 104, + 109, + 66 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-22/I03.png", + "pixels": 4403, + "mask": "/layout-reference/ref-22/I03-mask.png" + } + ], + "ocr": [], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 5 + } +} diff --git a/apps/wiki/public/layout-reference/ref-22/reconstructed.png b/apps/wiki/public/layout-reference/ref-22/reconstructed.png new file mode 100644 index 0000000..570a8fb Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/source.png b/apps/wiki/public/layout-reference/ref-22/source.png new file mode 100644 index 0000000..570a8fb Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-22/text-map.png b/apps/wiki/public/layout-reference/ref-22/text-map.png new file mode 100644 index 0000000..5ba25ca Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-22/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/I01-mask.png b/apps/wiki/public/layout-reference/ref-23/I01-mask.png new file mode 100644 index 0000000..0321277 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/I01.png b/apps/wiki/public/layout-reference/ref-23/I01.png new file mode 100644 index 0000000..ce42dfc Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/T01-underlay.png b/apps/wiki/public/layout-reference/ref-23/T01-underlay.png new file mode 100644 index 0000000..abda779 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/T01.png b/apps/wiki/public/layout-reference/ref-23/T01.png new file mode 100644 index 0000000..e5326a8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/T02-underlay.png b/apps/wiki/public/layout-reference/ref-23/T02-underlay.png new file mode 100644 index 0000000..82e8f04 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/T02.png b/apps/wiki/public/layout-reference/ref-23/T02.png new file mode 100644 index 0000000..920e88c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/T03-underlay.png b/apps/wiki/public/layout-reference/ref-23/T03-underlay.png new file mode 100644 index 0000000..ffcfca2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/T03.png b/apps/wiki/public/layout-reference/ref-23/T03.png new file mode 100644 index 0000000..4dfe366 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/T04-underlay.png b/apps/wiki/public/layout-reference/ref-23/T04-underlay.png new file mode 100644 index 0000000..2c166ab Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/T04.png b/apps/wiki/public/layout-reference/ref-23/T04.png new file mode 100644 index 0000000..dbcb88e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/T05-underlay.png b/apps/wiki/public/layout-reference/ref-23/T05-underlay.png new file mode 100644 index 0000000..6719338 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/T05-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/T05.png b/apps/wiki/public/layout-reference/ref-23/T05.png new file mode 100644 index 0000000..91a5715 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/T05.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/annotated.png b/apps/wiki/public/layout-reference/ref-23/annotated.png new file mode 100644 index 0000000..658576c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/background.png b/apps/wiki/public/layout-reference/ref-23/background.png new file mode 100644 index 0000000..72beb99 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/decoration-map.png b/apps/wiki/public/layout-reference/ref-23/decoration-map.png new file mode 100644 index 0000000..d4bbb36 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/image-map.png b/apps/wiki/public/layout-reference/ref-23/image-map.png new file mode 100644 index 0000000..eb8e103 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/index.html b/apps/wiki/public/layout-reference/ref-23/index.html new file mode 100644 index 0000000..53097d6 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-23/index.html @@ -0,0 +1,14 @@ + +ref-23 · 上方方图与中部大写英文

ref-23 / 上方方图与中部大写英文

原图纸底与画框 +右上标识(未辨识原字形) +主图下方左右标签(未辨识原字形) +BULUBLUE +英文下方四组微字(未辨识原字形) +底部三处标签(未辨识原字形) + +构件标注

原图第 5 行、第 2 列;114×172 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-23/manifest.json b/apps/wiki/public/layout-reference/ref-23/manifest.json new file mode 100644 index 0000000..b99f4dd --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-23/manifest.json @@ -0,0 +1,142 @@ +{ + "id": "ref-23", + "name": "上方方图与中部大写英文", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 134, + 775, + 114, + 172 + ], + "row": 5, + "column": 2 + }, + "width": 114, + "height": 172, + "reference": "/layout-reference/ref-23/source.png", + "annotated": "/layout-reference/ref-23/annotated.png", + "background": "/layout-reference/ref-23/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "右上标识", + "box": [ + 79, + 0, + 26, + 8 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-23/T01.png", + "pixels": 85, + "underlay": "/layout-reference/ref-23/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "主图下方左右标签", + "box": [ + 1, + 72, + 78, + 7 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-23/T02.png", + "pixels": 129, + "underlay": "/layout-reference/ref-23/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "中部大英文", + "box": [ + 0, + 78, + 113, + 25 + ], + "text": "BULUBLUE", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-23/T03.png", + "pixels": 1533, + "underlay": "/layout-reference/ref-23/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "英文下方四组微字", + "box": [ + 0, + 104, + 109, + 21 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-23/T04.png", + "pixels": 729, + "underlay": "/layout-reference/ref-23/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "底部三处标签", + "box": [ + 0, + 165, + 105, + 6 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-23/T05.png", + "pixels": 285, + "underlay": "/layout-reference/ref-23/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "左上方图", + "box": [ + 5, + 4, + 74, + 68 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-23/I01.png", + "pixels": 5032, + "mask": "/layout-reference/ref-23/I01-mask.png" + } + ], + "ocr": [ + { + "box": [ + 0.01702461145837529, + 0.45011763555939854, + 0.9542548642521016, + 0.15596627819445708 + ], + "confidence": 1, + "text": "BULUBLUE" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19608, + "unreadableText": 4 + } +} diff --git a/apps/wiki/public/layout-reference/ref-23/reconstructed.png b/apps/wiki/public/layout-reference/ref-23/reconstructed.png new file mode 100644 index 0000000..40bbd08 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/source.png b/apps/wiki/public/layout-reference/ref-23/source.png new file mode 100644 index 0000000..40bbd08 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-23/text-map.png b/apps/wiki/public/layout-reference/ref-23/text-map.png new file mode 100644 index 0000000..11ee72d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-23/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/D01.png b/apps/wiki/public/layout-reference/ref-24/D01.png new file mode 100644 index 0000000..b41c836 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/D02.png b/apps/wiki/public/layout-reference/ref-24/D02.png new file mode 100644 index 0000000..79e32d6 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/D03.png b/apps/wiki/public/layout-reference/ref-24/D03.png new file mode 100644 index 0000000..a2f5a8c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/D03.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/D04.png b/apps/wiki/public/layout-reference/ref-24/D04.png new file mode 100644 index 0000000..45ca9bc Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/D04.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/D05.png b/apps/wiki/public/layout-reference/ref-24/D05.png new file mode 100644 index 0000000..8a3b8d9 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/D05.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/I01-mask.png b/apps/wiki/public/layout-reference/ref-24/I01-mask.png new file mode 100644 index 0000000..e2804d3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/I01.png b/apps/wiki/public/layout-reference/ref-24/I01.png new file mode 100644 index 0000000..ecd521a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/T01-underlay.png b/apps/wiki/public/layout-reference/ref-24/T01-underlay.png new file mode 100644 index 0000000..aad3157 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/T01.png b/apps/wiki/public/layout-reference/ref-24/T01.png new file mode 100644 index 0000000..0721f34 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/T02-underlay.png b/apps/wiki/public/layout-reference/ref-24/T02-underlay.png new file mode 100644 index 0000000..ef19f44 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/T02.png b/apps/wiki/public/layout-reference/ref-24/T02.png new file mode 100644 index 0000000..5e12355 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/annotated.png b/apps/wiki/public/layout-reference/ref-24/annotated.png new file mode 100644 index 0000000..a7d8593 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/background.png b/apps/wiki/public/layout-reference/ref-24/background.png new file mode 100644 index 0000000..97c72dd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/decoration-map.png b/apps/wiki/public/layout-reference/ref-24/decoration-map.png new file mode 100644 index 0000000..c8f2f31 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/image-map.png b/apps/wiki/public/layout-reference/ref-24/image-map.png new file mode 100644 index 0000000..25474fe Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/index.html b/apps/wiki/public/layout-reference/ref-24/index.html new file mode 100644 index 0000000..c24875b --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-24/index.html @@ -0,0 +1,16 @@ + +ref-24 · 斜排中文与倾斜装饰线框

ref-24 / 斜排中文与倾斜装饰线框

原图纸底与画框 +蓝羽毛版式 +标题下方斜微字(未辨识原字形) + + + + + + +构件标注

原图第 5 行、第 3 列;113×172 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-24/manifest.json b/apps/wiki/public/layout-reference/ref-24/manifest.json new file mode 100644 index 0000000..6b759e9 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-24/manifest.json @@ -0,0 +1,171 @@ +{ + "id": "ref-24", + "name": "斜排中文与倾斜装饰线框", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 256, + 775, + 113, + 172 + ], + "row": 5, + "column": 3 + }, + "width": 113, + "height": 172, + "reference": "/layout-reference/ref-24/source.png", + "annotated": "/layout-reference/ref-24/annotated.png", + "background": "/layout-reference/ref-24/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "上方斜排标题", + "box": [ + 3, + 0, + 79, + 31 + ], + "text": "蓝羽毛版式", + "direction": "angled", + "reading": "verified", + "asset": "/layout-reference/ref-24/T01.png", + "pixels": 725, + "underlay": "/layout-reference/ref-24/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "标题下方斜微字", + "box": [ + 34, + 27, + 26, + 10 + ], + "text": null, + "direction": "angled", + "reading": "unreadable", + "asset": "/layout-reference/ref-24/T02.png", + "pixels": 91, + "underlay": "/layout-reference/ref-24/T02-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "中央竖向主图", + "box": [ + 21, + 36, + 68, + 100 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/I01.png", + "pixels": 6799, + "mask": "/layout-reference/ref-24/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左侧斜长线", + "box": [ + 2, + 51, + 14, + 60 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/D01.png", + "pixels": 190 + }, + { + "id": "D02", + "kind": "decoration", + "role": "右侧斜长线", + "box": [ + 94, + 15, + 15, + 119 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/D02.png", + "pixels": 624 + }, + { + "id": "D03", + "kind": "decoration", + "role": "左下斜向线组", + "box": [ + 13, + 136, + 57, + 24 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/D03.png", + "pixels": 750 + }, + { + "id": "D04", + "kind": "decoration", + "role": "右下斜贴条组", + "box": [ + 64, + 149, + 42, + 23 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/D04.png", + "pixels": 438 + }, + { + "id": "D05", + "kind": "decoration", + "role": "底边线", + "box": [ + 1, + 168, + 34, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-24/D05.png", + "pixels": 68 + } + ], + "ocr": [ + { + "box": [ + 0.02748666679407777, + 0.00811422680517071, + 0.6144820131735113, + 0.19655708194703103 + ], + "confidence": 1, + "text": "蓝羽毛版式" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19436, + "unreadableText": 1 + } +} diff --git a/apps/wiki/public/layout-reference/ref-24/reconstructed.png b/apps/wiki/public/layout-reference/ref-24/reconstructed.png new file mode 100644 index 0000000..d325c20 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/source.png b/apps/wiki/public/layout-reference/ref-24/source.png new file mode 100644 index 0000000..d325c20 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-24/text-map.png b/apps/wiki/public/layout-reference/ref-24/text-map.png new file mode 100644 index 0000000..90592fe Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-24/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/D01.png b/apps/wiki/public/layout-reference/ref-25/D01.png new file mode 100644 index 0000000..78bd1f7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/I01-mask.png b/apps/wiki/public/layout-reference/ref-25/I01-mask.png new file mode 100644 index 0000000..842a8e4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/I01.png b/apps/wiki/public/layout-reference/ref-25/I01.png new file mode 100644 index 0000000..580c89c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/T01-underlay.png b/apps/wiki/public/layout-reference/ref-25/T01-underlay.png new file mode 100644 index 0000000..c8e085f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/T01.png b/apps/wiki/public/layout-reference/ref-25/T01.png new file mode 100644 index 0000000..67c393c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/T02-underlay.png b/apps/wiki/public/layout-reference/ref-25/T02-underlay.png new file mode 100644 index 0000000..2f63df3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/T02.png b/apps/wiki/public/layout-reference/ref-25/T02.png new file mode 100644 index 0000000..213a1fd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/T03-underlay.png b/apps/wiki/public/layout-reference/ref-25/T03-underlay.png new file mode 100644 index 0000000..8711456 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/T03.png b/apps/wiki/public/layout-reference/ref-25/T03.png new file mode 100644 index 0000000..7b4cf25 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/T04-underlay.png b/apps/wiki/public/layout-reference/ref-25/T04-underlay.png new file mode 100644 index 0000000..1148bf7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/T04.png b/apps/wiki/public/layout-reference/ref-25/T04.png new file mode 100644 index 0000000..4603c8f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/annotated.png b/apps/wiki/public/layout-reference/ref-25/annotated.png new file mode 100644 index 0000000..77e8084 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/background.png b/apps/wiki/public/layout-reference/ref-25/background.png new file mode 100644 index 0000000..036cb4f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/decoration-map.png b/apps/wiki/public/layout-reference/ref-25/decoration-map.png new file mode 100644 index 0000000..e7a36e4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/image-map.png b/apps/wiki/public/layout-reference/ref-25/image-map.png new file mode 100644 index 0000000..8016984 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/index.html b/apps/wiki/public/layout-reference/ref-25/index.html new file mode 100644 index 0000000..73b3125 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-25/index.html @@ -0,0 +1,14 @@ + +ref-25 · 左侧竖题与右下方形主图

ref-25 / 左侧竖题与右下方形主图

原图纸底与画框 +高级·版式 +左侧辅助竖字(未辨识原字形) +右中说明(未辨识原字形) +左下边缘说明(未辨识原字形) + + +构件标注

原图第 5 行、第 4 列;113×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-25/manifest.json b/apps/wiki/public/layout-reference/ref-25/manifest.json new file mode 100644 index 0000000..ee58f5a --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-25/manifest.json @@ -0,0 +1,141 @@ +{ + "id": "ref-25", + "name": "左侧竖题与右下方形主图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 376, + 774, + 113, + 173 + ], + "row": 5, + "column": 4 + }, + "width": 113, + "height": 173, + "reference": "/layout-reference/ref-25/source.png", + "annotated": "/layout-reference/ref-25/annotated.png", + "background": "/layout-reference/ref-25/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "左侧竖题", + "box": [ + 8, + 39, + 8, + 46 + ], + "text": "高级·版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-25/T01.png", + "pixels": 233, + "underlay": "/layout-reference/ref-25/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "左侧辅助竖字", + "box": [ + 20, + 41, + 5, + 21 + ], + "text": null, + "direction": "vertical", + "reading": "unreadable", + "asset": "/layout-reference/ref-25/T02.png", + "pixels": 51, + "underlay": "/layout-reference/ref-25/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "右中说明", + "box": [ + 89, + 42, + 22, + 51 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-25/T03.png", + "pixels": 397, + "underlay": "/layout-reference/ref-25/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "左下边缘说明", + "box": [ + 15, + 132, + 1, + 11 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-25/T04.png", + "pixels": 3, + "underlay": "/layout-reference/ref-25/T04-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右下主图", + "box": [ + 14, + 102, + 94, + 65 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-25/I01.png", + "pixels": 6010, + "mask": "/layout-reference/ref-25/I01-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "左上阶梯横线", + "box": [ + 4, + 1, + 39, + 17 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-25/D01.png", + "pixels": 481 + } + ], + "ocr": [ + { + "box": [ + 0.06489673813555782, + 0.23121387201950871, + 0.08259590677807113, + 0.2601156069364161 + ], + "confidence": 0.30000001192092896, + "text": "高設•版式" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19549, + "unreadableText": 3 + } +} diff --git a/apps/wiki/public/layout-reference/ref-25/reconstructed.png b/apps/wiki/public/layout-reference/ref-25/reconstructed.png new file mode 100644 index 0000000..586d8ac Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/source.png b/apps/wiki/public/layout-reference/ref-25/source.png new file mode 100644 index 0000000..586d8ac Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-25/text-map.png b/apps/wiki/public/layout-reference/ref-25/text-map.png new file mode 100644 index 0000000..743f7bd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-25/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/D01.png b/apps/wiki/public/layout-reference/ref-26/D01.png new file mode 100644 index 0000000..bc874dd Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/D02.png b/apps/wiki/public/layout-reference/ref-26/D02.png new file mode 100644 index 0000000..40ac553 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/D03.png b/apps/wiki/public/layout-reference/ref-26/D03.png new file mode 100644 index 0000000..2467458 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/D03.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/D04.png b/apps/wiki/public/layout-reference/ref-26/D04.png new file mode 100644 index 0000000..d6458f3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/D04.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/D05.png b/apps/wiki/public/layout-reference/ref-26/D05.png new file mode 100644 index 0000000..14b25f7 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/D05.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/I01-mask.png b/apps/wiki/public/layout-reference/ref-26/I01-mask.png new file mode 100644 index 0000000..0c8b62a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/I01.png b/apps/wiki/public/layout-reference/ref-26/I01.png new file mode 100644 index 0000000..263254b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/T01-underlay.png b/apps/wiki/public/layout-reference/ref-26/T01-underlay.png new file mode 100644 index 0000000..4901625 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/T01.png b/apps/wiki/public/layout-reference/ref-26/T01.png new file mode 100644 index 0000000..bb1717f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/T02-underlay.png b/apps/wiki/public/layout-reference/ref-26/T02-underlay.png new file mode 100644 index 0000000..01c2ff2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/T02.png b/apps/wiki/public/layout-reference/ref-26/T02.png new file mode 100644 index 0000000..bc26a7a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/T03-underlay.png b/apps/wiki/public/layout-reference/ref-26/T03-underlay.png new file mode 100644 index 0000000..de5e8db Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/T03.png b/apps/wiki/public/layout-reference/ref-26/T03.png new file mode 100644 index 0000000..18988e8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/T04-underlay.png b/apps/wiki/public/layout-reference/ref-26/T04-underlay.png new file mode 100644 index 0000000..c3e375c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/T04-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/T04.png b/apps/wiki/public/layout-reference/ref-26/T04.png new file mode 100644 index 0000000..da07f5c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/T04.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/T05-underlay.png b/apps/wiki/public/layout-reference/ref-26/T05-underlay.png new file mode 100644 index 0000000..3ba55e2 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/T05-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/T05.png b/apps/wiki/public/layout-reference/ref-26/T05.png new file mode 100644 index 0000000..babb9e8 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/T05.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/annotated.png b/apps/wiki/public/layout-reference/ref-26/annotated.png new file mode 100644 index 0000000..bab1697 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/background.png b/apps/wiki/public/layout-reference/ref-26/background.png new file mode 100644 index 0000000..326146d Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/decoration-map.png b/apps/wiki/public/layout-reference/ref-26/decoration-map.png new file mode 100644 index 0000000..e4aea3e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/image-map.png b/apps/wiki/public/layout-reference/ref-26/image-map.png new file mode 100644 index 0000000..400f2e4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/index.html b/apps/wiki/public/layout-reference/ref-26/index.html new file mode 100644 index 0000000..2516c48 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-26/index.html @@ -0,0 +1,19 @@ + +ref-26 · 三行英文与曲线指引小图

ref-26 / 三行英文与曲线指引小图

原图纸底与画框 + + +Format 58 +Bulubl +Bulublue +高级版式 +左下说明(未辨识原字形) + + + + +构件标注

原图第 5 行、第 5 列;114×173 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-26/manifest.json b/apps/wiki/public/layout-reference/ref-26/manifest.json new file mode 100644 index 0000000..be8279e --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-26/manifest.json @@ -0,0 +1,242 @@ +{ + "id": "ref-26", + "name": "三行英文与曲线指引小图", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 496, + 774, + 114, + 173 + ], + "row": 5, + "column": 5 + }, + "width": 114, + "height": 173, + "reference": "/layout-reference/ref-26/source.png", + "annotated": "/layout-reference/ref-26/annotated.png", + "background": "/layout-reference/ref-26/background.png", + "elements": [ + { + "id": "D01", + "kind": "decoration", + "role": "第二行下划线", + "box": [ + 0, + 41, + 47, + 1 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/D01.png", + "pixels": 7 + }, + { + "id": "D02", + "kind": "decoration", + "role": "第三行下划线", + "box": [ + 0, + 58, + 67, + 2 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/D02.png", + "pixels": 134 + }, + { + "id": "T01", + "kind": "text", + "role": "第一行英文", + "box": [ + 0, + 0, + 81, + 18 + ], + "text": "Format 58", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-26/T01.png", + "pixels": 657, + "underlay": "/layout-reference/ref-26/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "第二行英文", + "box": [ + 0, + 23, + 49, + 18 + ], + "text": "Bulubl", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-26/T02.png", + "pixels": 433, + "underlay": "/layout-reference/ref-26/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "第三行英文", + "box": [ + 0, + 41, + 68, + 19 + ], + "text": "Bulublue", + "direction": "horizontal", + "reading": "verified", + "asset": "/layout-reference/ref-26/T03.png", + "pixels": 574, + "underlay": "/layout-reference/ref-26/T03-underlay.png" + }, + { + "id": "T04", + "kind": "text", + "role": "右侧竖排标题", + "box": [ + 98, + 68, + 12, + 46 + ], + "text": "高级版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-26/T04.png", + "pixels": 374, + "underlay": "/layout-reference/ref-26/T04-underlay.png" + }, + { + "id": "T05", + "kind": "text", + "role": "左下说明", + "box": [ + 4, + 140, + 44, + 29 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-26/T05.png", + "pixels": 888, + "underlay": "/layout-reference/ref-26/T05-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "右下方形图片", + "box": [ + 66, + 118, + 43, + 50 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/I01.png", + "pixels": 2150, + "mask": "/layout-reference/ref-26/I01-mask.png" + }, + { + "id": "D03", + "kind": "decoration", + "role": "中间分隔线", + "box": [ + 0, + 60, + 112, + 3 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/D03.png", + "pixels": 230 + }, + { + "id": "D04", + "kind": "decoration", + "role": "中央自由曲线", + "box": [ + 6, + 48, + 85, + 87 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/D04.png", + "pixels": 534 + }, + { + "id": "D05", + "kind": "decoration", + "role": "自动识别细线", + "box": [ + 91, + 59, + 19, + 1 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-26/D05.png", + "pixels": 19 + } + ], + "ocr": [ + { + "box": [ + 0.011695904385964868, + 0.017341040546724473, + 0.6549707602339181, + 0.07707129094412335 + ], + "confidence": 0.5, + "text": "Format 58" + }, + { + "box": [ + 0.01461988470535311, + 0.14065510587668595, + 0.4327485380116959, + 0.08285163776493254 + ], + "confidence": 0.5, + "text": "Bulubl" + }, + { + "box": [ + 0.017385159403405345, + 0.23650755152999758, + 0.5821887456882767, + 0.08382497357495267 + ], + "confidence": 1, + "text": "Bulublue" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19722, + "unreadableText": 1 + } +} diff --git a/apps/wiki/public/layout-reference/ref-26/reconstructed.png b/apps/wiki/public/layout-reference/ref-26/reconstructed.png new file mode 100644 index 0000000..1a476c3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/source.png b/apps/wiki/public/layout-reference/ref-26/source.png new file mode 100644 index 0000000..1a476c3 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-26/text-map.png b/apps/wiki/public/layout-reference/ref-26/text-map.png new file mode 100644 index 0000000..2b2313b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-26/text-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/D01.png b/apps/wiki/public/layout-reference/ref-27/D01.png new file mode 100644 index 0000000..7ff2f6a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/D01.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/D02.png b/apps/wiki/public/layout-reference/ref-27/D02.png new file mode 100644 index 0000000..04b43cb Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/D02.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/D03.png b/apps/wiki/public/layout-reference/ref-27/D03.png new file mode 100644 index 0000000..4dba45c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/D03.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/I01-mask.png b/apps/wiki/public/layout-reference/ref-27/I01-mask.png new file mode 100644 index 0000000..5390e56 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/I01-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/I01.png b/apps/wiki/public/layout-reference/ref-27/I01.png new file mode 100644 index 0000000..bb9de74 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/I01.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/I02-mask.png b/apps/wiki/public/layout-reference/ref-27/I02-mask.png new file mode 100644 index 0000000..e45ce56 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/I02-mask.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/I02.png b/apps/wiki/public/layout-reference/ref-27/I02.png new file mode 100644 index 0000000..c31558b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/I02.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/T01-underlay.png b/apps/wiki/public/layout-reference/ref-27/T01-underlay.png new file mode 100644 index 0000000..bd23b0a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/T01-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/T01.png b/apps/wiki/public/layout-reference/ref-27/T01.png new file mode 100644 index 0000000..fff89ec Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/T01.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/T02-underlay.png b/apps/wiki/public/layout-reference/ref-27/T02-underlay.png new file mode 100644 index 0000000..ec1854a Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/T02-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/T02.png b/apps/wiki/public/layout-reference/ref-27/T02.png new file mode 100644 index 0000000..eeb161c Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/T02.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/T03-underlay.png b/apps/wiki/public/layout-reference/ref-27/T03-underlay.png new file mode 100644 index 0000000..c659559 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/T03-underlay.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/T03.png b/apps/wiki/public/layout-reference/ref-27/T03.png new file mode 100644 index 0000000..3973e8b Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/T03.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/annotated.png b/apps/wiki/public/layout-reference/ref-27/annotated.png new file mode 100644 index 0000000..d0ee07e Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/annotated.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/background.png b/apps/wiki/public/layout-reference/ref-27/background.png new file mode 100644 index 0000000..c1e76a9 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/background.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/decoration-map.png b/apps/wiki/public/layout-reference/ref-27/decoration-map.png new file mode 100644 index 0000000..0e5120f Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/decoration-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/image-map.png b/apps/wiki/public/layout-reference/ref-27/image-map.png new file mode 100644 index 0000000..86c96f0 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/image-map.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/index.html b/apps/wiki/public/layout-reference/ref-27/index.html new file mode 100644 index 0000000..f0dae63 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-27/index.html @@ -0,0 +1,16 @@ + +ref-27 · 对角双区与斜向文字带

ref-27 / 对角双区与斜向文字带

原图纸底与画框 +高级の版式 +蓝羽毛·版式 +底部说明(未辨识原字形) + + + + + +构件标注

原图第 5 行、第 6 列;112×172 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

diff --git a/apps/wiki/public/layout-reference/ref-27/manifest.json b/apps/wiki/public/layout-reference/ref-27/manifest.json new file mode 100644 index 0000000..24e9698 --- /dev/null +++ b/apps/wiki/public/layout-reference/ref-27/manifest.json @@ -0,0 +1,173 @@ +{ + "id": "ref-27", + "name": "对角双区与斜向文字带", + "source": { + "url": "/layout-reference/source.png", + "sha256": "121ab8a362c45eee86281ca5dfbbe33577cfcd255579a16c3542530484b9f1dc", + "box": [ + 618, + 774, + 112, + 172 + ], + "row": 5, + "column": 6 + }, + "width": 112, + "height": 172, + "reference": "/layout-reference/ref-27/source.png", + "annotated": "/layout-reference/ref-27/annotated.png", + "background": "/layout-reference/ref-27/background.png", + "elements": [ + { + "id": "T01", + "kind": "text", + "role": "左侧白色竖题", + "box": [ + 6, + 7, + 12, + 86 + ], + "text": "高级の版式", + "direction": "vertical", + "reading": "verified", + "asset": "/layout-reference/ref-27/T01.png", + "pixels": 396, + "underlay": "/layout-reference/ref-27/T01-underlay.png" + }, + { + "id": "T02", + "kind": "text", + "role": "中部斜向文字", + "box": [ + 3, + 77, + 109, + 37 + ], + "text": "蓝羽毛·版式", + "direction": "angled", + "reading": "verified", + "asset": "/layout-reference/ref-27/T02.png", + "pixels": 273, + "underlay": "/layout-reference/ref-27/T02-underlay.png" + }, + { + "id": "T03", + "kind": "text", + "role": "底部说明", + "box": [ + 0, + 157, + 112, + 15 + ], + "text": null, + "direction": "horizontal", + "reading": "unreadable", + "asset": "/layout-reference/ref-27/T03.png", + "pixels": 865, + "underlay": "/layout-reference/ref-27/T03-underlay.png" + }, + { + "id": "I01", + "kind": "image", + "role": "上方三角出血图", + "box": [ + 1, + 1, + 108, + 89 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-27/I01.png", + "pixels": 6738, + "mask": "/layout-reference/ref-27/I01-mask.png" + }, + { + "id": "I02", + "kind": "image", + "role": "下方斜切图", + "box": [ + 1, + 91, + 108, + 68 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-27/I02.png", + "pixels": 4949, + "mask": "/layout-reference/ref-27/I02-mask.png" + }, + { + "id": "D01", + "kind": "decoration", + "role": "顶部右阶梯横线", + "box": [ + 61, + 0, + 48, + 20 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-27/D01.png", + "pixels": 581 + }, + { + "id": "D02", + "kind": "decoration", + "role": "中部斜向浅带", + "box": [ + 0, + 72, + 112, + 40 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-27/D02.png", + "pixels": 2000 + }, + { + "id": "D03", + "kind": "decoration", + "role": "左下阶梯横线", + "box": [ + 0, + 145, + 42, + 15 + ], + "text": null, + "direction": "horizontal", + "reading": "not-text", + "asset": "/layout-reference/ref-27/D03.png", + "pixels": 391 + } + ], + "ocr": [ + { + "box": [ + -0.021385720300243924, + 0.4385955087605439, + 0.8388941628592355, + 0.20254762043324548 + ], + "confidence": 0.5, + "text": "蓝羽毛-版式" + } + ], + "verification": { + "pixelIdentical": true, + "pixels": 19264, + "unreadableText": 1 + } +} diff --git a/apps/wiki/public/layout-reference/ref-27/reconstructed.png b/apps/wiki/public/layout-reference/ref-27/reconstructed.png new file mode 100644 index 0000000..8b14ab4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/reconstructed.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/source.png b/apps/wiki/public/layout-reference/ref-27/source.png new file mode 100644 index 0000000..8b14ab4 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/source.png differ diff --git a/apps/wiki/public/layout-reference/ref-27/text-map.png b/apps/wiki/public/layout-reference/ref-27/text-map.png new file mode 100644 index 0000000..2dc9e94 Binary files /dev/null and b/apps/wiki/public/layout-reference/ref-27/text-map.png differ diff --git a/apps/wiki/public/layout-reference/source.png b/apps/wiki/public/layout-reference/source.png new file mode 100644 index 0000000..f3785eb Binary files /dev/null and b/apps/wiki/public/layout-reference/source.png differ diff --git a/apps/wiki/scripts/build-reference-layout-demos.ts b/apps/wiki/scripts/build-reference-layout-demos.ts new file mode 100644 index 0000000..0280e49 --- /dev/null +++ b/apps/wiki/scripts/build-reference-layout-demos.ts @@ -0,0 +1,22 @@ +import {readFile,writeFile,mkdir} from 'node:fs/promises'; +import path from 'node:path'; +import layouts from '../src/content/layouts/reference/manifest.json'; +const root=path.resolve(import.meta.dirname,'..'),target=path.join(root,'public/layout-reference'); +const esc=(s:string)=>s.replaceAll('&','&').replaceAll('<','<').replaceAll('"','"'); +async function main(){ + await writeFile(path.join(target,'manifest.json'),JSON.stringify(layouts,null,2)+'\n'); + const runtime=await readFile(path.join(root,'src/content/layouts/reference/ReferenceLayout.tsx'),'utf8');await writeFile(path.join(target,'ReferenceLayout.tsx'),runtime); + for(const l of layouts){ + const layers=l.elements.map(e=>{const[x,y,w,h]=e.box;return `${esc(e.kind==='text'?e.text||e.role+'(未辨识原字形)':'')}`}).join('\n'); + const html=`\n${l.id} · ${l.name}

${l.id} / ${l.name}

原图纸底与画框\n${layers}\n构件标注

原图第 ${l.source.row} 行、第 ${l.source.column} 列;${l.width}×${l.height} 像素。显示为原始构件重组,无新生成图形。放大不增加细节。

\n`; + await writeFile(path.join(target,l.id,'index.html'),html); + } + await writeFile(path.join(target,'index.html'),`27 张原图版面索引

27 张原图版面 · 一一对应

按原图从上到下、每行从左到右编号,排除左侧说明栏。点击每张可分开检查文字、图片占位/色块与装饰。

查看编号原图 · 机器索引

\n`); + console.log('Built 27 layer inspectors and the source ID index.'); +} +main().catch(e=>{console.error(e);process.exitCode=1}); diff --git a/apps/wiki/scripts/generate-layout-recipes.ts b/apps/wiki/scripts/generate-layout-recipes.ts deleted file mode 100644 index 685e94b..0000000 --- a/apps/wiki/scripts/generate-layout-recipes.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** Rebuild standalone demos and schematic covers; no browser or external assets. */ -import {mkdir,writeFile} from 'node:fs/promises'; -import path from 'node:path'; -import sharp from 'sharp'; -import {recipes,recipeHtml} from '../src/content/layouts/documents'; -async function main(){ -const target=path.resolve(import.meta.dirname,'../public/layout-recipes'); -await mkdir(target,{recursive:true}); -const esc=(s:string)=>s.replaceAll('&','&').replaceAll('<','<').replaceAll('>','>'); -const outer=(inside:string)=>`${inside}`; -for(const [i,r] of recipes.entries()){ - const graphic=outer(`${r.shapes}FORM STUDIES / ${String(i+1).padStart(2,'0')}${esc(r.name)}结构示意 · 非代码截图HTML / REACT / NEXT.JS`); - await writeFile(path.join(target,r.slug+'.html'),recipeHtml(r)+'\n'); - await sharp(Buffer.from(graphic)).png().toFile(path.join(target,r.slug+'.png')); -} -const cards=recipes.map((r,i)=>{const col=i%3,row=Math.floor(i/3);return `${r.shapes}${String(i+1).padStart(2,'0')}${esc(r.name.slice(0,4))}${esc(r.name.slice(4))}`}).join(''); -await sharp(Buffer.from(outer(`FORM STUDIES / DESIGN ROUTER高级感排版${cards}12 套构图 / 选择 → 实现 → 验收 · 结构索引`))).png().toFile(path.join(target,'router.png')); -console.log(`Generated ${recipes.length} standalone HTML demos and ${recipes.length+1} schematic PNGs.`); - -} -main().catch(error=>{console.error(error);process.exitCode=1}); diff --git a/apps/wiki/scripts/package-reference-layouts.ts b/apps/wiki/scripts/package-reference-layouts.ts new file mode 100644 index 0000000..6e87ad6 --- /dev/null +++ b/apps/wiki/scripts/package-reference-layouts.ts @@ -0,0 +1,19 @@ +import {readFile,writeFile,mkdir,cp,rm} from 'node:fs/promises'; +import path from 'node:path'; +import {spawnSync} from 'node:child_process'; +import {tmpdir} from 'node:os'; +import {guidanceMarkdown} from '../src/content/skills/guidance'; +import {layouts,nextExample} from '../src/content/layouts/documents'; +async function main(){ + const root=path.resolve(import.meta.dirname,'..'),stage=path.join(tmpdir(),'prompt-layout-reference-toolkit');await rm(stage,{recursive:true,force:true});await mkdir(stage,{recursive:true}); + const put=async(name:string,text:string)=>{const file=path.join(stage,name);await mkdir(path.dirname(file),{recursive:true});await writeFile(file,text+'\n')}; + await cp(path.join(root,'public/layout-reference'),path.join(stage,'public/layout-reference'),{recursive:true,filter:source=>!source.endsWith('.zip')}); + for(const file of ['ReferenceLayout.tsx','manifest.json'])await put('components/reference-layouts/'+file,await readFile(path.join(root,'src/content/layouts/reference',file),'utf8')); + for(const l of layouts){await put('documents/'+l.id+'.md',guidanceMarkdown('premium-layout/'+l.id)!);await put('app/designs/'+l.id+'/page.tsx',nextExample(l.id))} + await put('documents/router.md',guidanceMarkdown('premium-layout/router')!); + await put('app/layout.tsx',`import type {ReactNode} from 'react';\nexport default function RootLayout({children}:{children:ReactNode}){return {children}}`); + await put('README.md',`# 27 张原图一一对应排版\n\n先读 documents/router.md,再选定 ref-01 至 ref-27 中的固定 ID。\n\n原始参考拼图是 736×980,每张约 112×173;素材保留原像素,不能恢复缺失的小字。默认 ReferenceLayout 逐层重组原图;文字仍是分类明确的原字形资产,不是已恢复成精确字体的矢量文字。text 属性可按完整构件键替换为 DOM 文本,未辨识细字不要猜写。\n\nHTML 检查器位于 public/layout-reference/index.html,需要通过静态服务器提供 public 目录。React 项目将 components 和 public 素材合入现有项目;Next.js 项目同时可使用 app/designs 下各个固定路由页。已有根布局应合并,不覆盖;@/ 指向源码根。\n\n包中没有 package.json,供合入现有 React / Next.js 项目。保留 manifest.json 与所有素材的相对路径。调用 ref-01 时只允许 ref-01/Txx 和 ref-01/Ixx;组件会验证类型与归属。弧形文字替换须专门建立该版面的 SVG 文字路径,通用组件会拒绝直接改成横排。\n\n原作者与素材许可未提供;本包用于用户提供参考图的识别、设计分析与原图对照,不声明模板所有权。\n`); + const result=spawnSync('python3',['-c',`import pathlib,zipfile,sys\nroot=pathlib.Path(sys.argv[1]);out=pathlib.Path(sys.argv[2])\nwith zipfile.ZipFile(out,'w',zipfile.ZIP_DEFLATED) as z:\n for p in sorted(root.rglob('*')):\n if p.is_file():z.write(p,p.relative_to(root))`,stage,path.join(root,'public/layout-reference/layout-reference-toolkit.zip')],{stdio:'inherit'}); + if(result.status!==0)throw Error('ZIP packaging failed');console.log('Packaged 27 layouts, 28 documents, React, Next.js and classified source assets.'); +} +main().catch(e=>{console.error(e);process.exitCode=1}); diff --git a/apps/wiki/scripts/recognize-layout-text.swift b/apps/wiki/scripts/recognize-layout-text.swift new file mode 100644 index 0000000..ed42ce3 --- /dev/null +++ b/apps/wiki/scripts/recognize-layout-text.swift @@ -0,0 +1,22 @@ +import Foundation +import Vision +import AppKit +let folder=URL(fileURLWithPath:CommandLine.arguments[1]) +var result:[[String:Any]]=[] +for url in try FileManager.default.contentsOfDirectory(at:folder,includingPropertiesForKeys:nil).filter({$0.pathExtension=="png"}).sorted(by:{$0.lastPathComponent<$1.lastPathComponent}) { + let request=VNRecognizeTextRequest() + request.recognitionLevel = .accurate + request.recognitionLanguages = ["zh-Hans","en-US"] + request.usesLanguageCorrection = false + request.minimumTextHeight = 0.004 + try VNImageRequestHandler(url:url).perform([request]) + let lines=(request.results ?? []).compactMap { observation -> [String:Any]? in + guard let candidate=observation.topCandidates(1).first else{return nil} + let b=observation.boundingBox + return ["text":candidate.string,"confidence":candidate.confidence,"box":[b.minX,1-b.maxY,b.width,b.height]] + } + result.append(["file":url.lastPathComponent,"lines":lines]) +} +let data=try JSONSerialization.data(withJSONObject:result,options:[.prettyPrinted,.sortedKeys]) +try data.write(to:URL(fileURLWithPath:CommandLine.arguments[2])) +print("OCR processed \(result.count) panels") diff --git a/apps/wiki/scripts/segment-layout-reference.ts b/apps/wiki/scripts/segment-layout-reference.ts new file mode 100644 index 0000000..49d6e0f --- /dev/null +++ b/apps/wiki/scripts/segment-layout-reference.ts @@ -0,0 +1,128 @@ +/** Deterministic segmentation + reviewed semantic regions; no generated imagery. */ +import sharp from 'sharp'; +import {readFile,writeFile,mkdir,rm} from 'node:fs/promises'; +import path from 'node:path'; +import {createHash} from 'node:crypto'; +import annotations from '../src/content/layouts/reference/annotations.json'; +import {textMergeTarget,unionBoxes} from '../src/content/layouts/reference/group-text'; +import ocr from '../src/content/layouts/reference/ocr-evidence.json'; +const root=path.resolve(import.meta.dirname,'..'),target=path.join(root,'public/layout-reference'); +type Box=[number,number,number,number]; +type Element={id:string;kind:'text'|'image'|'decoration';role:string;box:Box;text:string|null;direction:string;reading:'verified'|'unreadable'|'not-text';asset:string;mask?:string;underlay?:string;pixels:number}; +function components(mask:Uint8Array,w:number,h:number){ + const seen=new Uint8Array(mask.length),items:{box:Box;pixels:number[]}[]=[]; + for(let i=0;i=0&&kMath.abs(data[i*3+k]-c)))>19?1:0; + const found=components(mask,W,H).filter(({box:[,,w,h]})=>w>85&&w<125&&h>145&&h<190).map(({box:[x,y,w,h]})=>({x,y,w,h})); + if(found.length!==27)throw Error(`Expected 27 panels; found ${found.length}`); + const rows:number[]=[],cols:number[]=[]; + for(const p of [...found].sort((a,b)=>a.y-b.y))if(!rows.some(y=>Math.abs(y-p.y)<8))rows.push(p.y); + for(const p of [...found].sort((a,b)=>a.x-b.x))if(!cols.some(x=>Math.abs(x-p.x)<8))cols.push(p.x); + const panels=found.map(p=>({...p,row:rows.findIndex(y=>Math.abs(y-p.y)<8)+1,column:cols.findIndex(x=>Math.abs(x-p.x)<8)+1})).sort((a,b)=>a.row-b.row||a.x-b.x); + const manifests=[];let totalPixels=0; + for(const [index,p]of panels.entries()){ + const id='ref-'+String(index+1).padStart(2,'0'),spec=annotations[index],dir=path.join(target,id);await rm(dir,{recursive:true,force:true});await mkdir(dir,{recursive:true}); + const crop=await sharp(source).extract({left:p.x,top:p.y,width:p.w,height:p.h}).removeAlpha().raw().toBuffer(),w=p.w,h=p.h; + await sharp(crop,{raw:{width:w,height:h,channels:3}}).png().toFile(path.join(dir,'source.png')); + const owner=new Int16Array(w*h).fill(-1),elements:Element[]=[]; + function entry(kind:Element['kind'],role:string,box:number[],text:string|null=null,direction='horizontal'){ + const prefix={text:'T',image:'I',decoration:'D'}[kind],n=elements.filter(e=>e.kind===kind).length+1; + let[x,y,bw,bh]=box.map(Math.round);x=Math.max(0,Math.min(w-1,x));y=Math.max(0,Math.min(h-1,y)); + const e:Element={id:prefix+String(n).padStart(2,'0'),kind,role,box:[x,y,Math.max(1,Math.min(w-x,bw)),Math.max(1,Math.min(h-y,bh))],text,direction,reading:kind==='text'?(text===null?'unreadable':'verified'):'not-text',asset:'',pixels:0};elements.push(e);return e; + } + function region(box:Box,fn:(i:number)=>boolean){const[x,y,bw,bh]=box;for(let yy=y;yy(); + for(let y=Math.max(1,sy-7);y220||Math.min(...rgb)<65)continue;const key=rgb.map(v=>Math.round(v/8)).join(','),c=hist.get(key);if(c)c.count++;else hist.set(key,{rgb,count:1})} + const color=[...hist.values()].sort((a,b)=>b.count-a.count)[0]?.rgb;if(!color)throw Error(id+': no fill color');return color; + } + const imageColors=spec.images.map(image=>fillColor(image.seed)); + for(const d of spec.decor.filter(d=>d.box[3]<=2&&d.box[2]>8)){const e=entry('decoration',d.role,d.box);region(e.box,i=>Math.max(...crop.subarray(i*3,i*3+3))<225)} + for(const t of spec.texts){const e=entry('text',t.role,t.box,t.text,t.direction); + const[x,y,bw,bh]=e.box,hist=new Map();for(let yy=y;yyb[1]-a[1])[0][0]; + region(e.box,i=>{ + const rgb=[...crop.subarray(i*3,i*3+3)],lum=(rgb[0]+rgb[1]+rgb[2])/3; + if(t.tone==='light'||t.tone==='muted-light')return lum>mode+7; + if(t.tone==='muted-dark')return lum{const[a,b,c,d]=spec.images[n].box,x=i%w,y=Math.floor(i/w);return x>=a&&x=b&&yrgb[k]-v))<16}); + }) + } + + for(const[n,image]of spec.images.entries()){ + const e=entry('image',image.role,image.box),color=imageColors[n],candidate=new Uint8Array(w*h),[a,b,c,d]=image.box; + for(let y=Math.max(1,b-12);ycrop[i*3+k]-v))<=36)candidate[i]=1} + const[sx,sy]=image.seed,options=components(candidate,w,h).filter(c=>c.pixels.length>=12).sort((u,v)=>{ + const distance=(part:{box:Box})=>{const[x,y,bw,bh]=part.box;return Math.max(x-sx,sx-x-bw,0)**2+Math.max(y-sy,sy-y-bh,0)**2};return distance(u)-distance(v)||v.pixels.length-u.pixels.length; + }); + const selected=options[0];if(!selected)throw Error(id+': no connected image region '+image.role); + for(const i of selected.pixels)if(owner[i]===-1)owner[i]=elements.length-1; + } + + for(const d of spec.decor.filter(d=>!(d.box[3]<=2&&d.box[2]>8))){const e=entry('decoration',d.role,d.box);region(e.box,i=>id==='ref-04'?Math.min(...crop.subarray(i*3,i*3+3))>218:Math.max(...crop.subarray(i*3,i*3+3))<240)} + const residual=new Uint8Array(w*h);for(let y=4;y=7&&bh<=2)||(bh>=7&&bw<=2)){entry('decoration','自动识别细线',c.box);for(const i of c.pixels)owner[i]=elements.length-1}else tiny.push(...c.pixels)} + if(tiny.length){ + const joined=new Uint8Array(w*h);for(const i of tiny){const x=i%w,y=Math.floor(i/w);for(let dy=-1;dy<=1;dy++)for(let dx=-2;dx<=2;dx++)if(x+dx>=4&&x+dx=4&&y+dyset.has(i));if(!ink.length)continue;const candidates=elements.filter(e=>e.kind==='text'),match=textMergeTarget(c.box,candidates);if(match>=0){const existing=candidates[match],n=elements.indexOf(existing);existing.box=unionBoxes(existing.box,c.box);for(const i of ink)owner[i]=n}else{entry('text','未辨识细字(内容待核对)',c.box);for(const i of ink)owner[i]=elements.length-1}} + } + for(const[n,e]of elements.entries()){ + let x0=w,y0=h,x1=-1,y1=-1;for(let i=0;i=0)e.box=[x0,y0,x1-x0+1,y1-y0+1]; + } + const result=Buffer.alloc(w*h*3),background=Buffer.alloc(w*h*4);let assigned=0; + for(let i=0;i=w||yy+dy<0||yy+dy>=h)continue; + const k=(yy+dy)*w+xx+dx;if(elements[owner[k]]?.kind==='text')continue;samples.push([...crop.subarray(k*3,k*3+3)]); + } + for(let c=0;c<3;c++)underlay[j+c]=samples.length?Math.round(samples.reduce((sum,rgb)=>sum+rgb[c],0)/samples.length):245;underlay[j+3]=255;underlay.copy(background,i*4,j,j+4); + } + e.underlay=`/layout-reference/${id}/${e.id}-underlay.png`; + await sharp(underlay,{raw:{width:bw,height:bh,channels:4}}).png().toFile(path.join(dir,e.id+'-underlay.png')); + } + if(e.kind==='image'){ + const outside=new Uint8Array(binary.length),q:number[]=[];for(let i=0;i=bw*(bh-1)||i%bw===0||i%bw===bw-1)){q.push(i);outside[i]=1} + for(let c=0;c=0&&je.pixels>0),colors={text:'#2c64d8',image:'#e66d22',decoration:'#08875d'}; + const overlay=`${kept.map(e=>{const[x,y,bw,bh]=e.box;return `${e.id}`}).join('')}`; + await sharp(crop,{raw:{width:w,height:h,channels:3}}).resize(w*6,h*6,{kernel:'nearest'}).composite([{input:Buffer.from(overlay)}]).png().toFile(path.join(dir,'annotated.png')); + const manifest={id,name:spec.name,source:{url:'/layout-reference/source.png',sha256:createHash('sha256').update(source).digest('hex'),box:[p.x,p.y,w,h],row:p.row,column:p.column},width:w,height:h,reference:`/layout-reference/${id}/source.png`,annotated:`/layout-reference/${id}/annotated.png`,background:`/layout-reference/${id}/background.png`,elements:kept,ocr:ocr.find(r=>r.file===id+'.png')?.lines||[],verification:{pixelIdentical:true,pixels:w*h,unreadableText:kept.filter(e=>e.reading==='unreadable').length}}; + await writeFile(path.join(dir,'manifest.json'),JSON.stringify(manifest,null,2)+'\n');manifests.push(manifest);totalPixels+=w*h; + } + const overlay=`${manifests.map(m=>{const[x,y,w,h]=m.source.box;return `${m.id}`}).join('')}`; + await sharp(source).composite([{input:Buffer.from(overlay)}]).png().toFile(path.join(target,'numbered-source.png')); + await writeFile(path.join(root,'src/content/layouts/reference/manifest.json'),JSON.stringify(manifests,null,2)+'\n'); + await writeFile(path.join(target,'index.json'),JSON.stringify({version:2,sourceSha256:manifests[0].source.sha256,numbering:'row-major; exclude left title banner',layouts:manifests.map(m=>({id:m.id,name:m.name,source:m.source,manifest:`/layout-reference/${m.id}/manifest.json`}))},null,2)+'\n'); + console.log(`Detected ${panels.length} panels; ${manifests.reduce((n,m)=>n+m.elements.length,0)} typed components; ${totalPixels} pixels reconstructed exactly.`); +} +main().catch(e=>{console.error(e);process.exitCode=1}); diff --git a/apps/wiki/src/content/layouts/documents.ts b/apps/wiki/src/content/layouts/documents.ts index ea93d59..d582415 100644 --- a/apps/wiki/src/content/layouts/documents.ts +++ b/apps/wiki/src/content/layouts/documents.ts @@ -1,63 +1,52 @@ -import recipes from './recipes.json'; +import layouts from './reference/manifest.json'; import type {Block} from '../skills/catalog'; import type {GuidanceDocument,GuidanceResource} from '../skills/guidance'; import {guidanceUrl} from '../page-links'; -export {recipes}; -export const baseCss=`*{box-sizing:border-box} -body{margin:0;background:#e4e6e1;color:#243230} -.pl-frame{width:min(100%,1080px);margin-inline:auto;container-type:inline-size} -.pl-sheet{--paper:#f5f3ec;--ink:#243230;--muted:#9aa6a5;--deep:#5d706e;position:relative;isolation:isolate;width:100%;aspect-ratio:3/4;overflow:hidden;background:var(--paper);color:var(--ink);font-size:1cqw;font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif} -.pl-sheet .panel{position:absolute;background:var(--muted)} -.pl-sheet .title{position:absolute;margin:0;font-weight:500;line-height:1.12;max-width:86%;overflow-wrap:anywhere} -.pl-sheet .copy{position:absolute;margin:0;font-size:2.22em;line-height:1.65;white-space:pre-line} -.pl-sheet .edition{position:absolute;left:7%;right:7%;bottom:2.5%;display:flex;justify-content:space-between;border-top:.1em solid currentColor;padding-top:.7em;font-size:1.6em;letter-spacing:.08em} - .pl-sheet.monumental-type .edition,.pl-sheet.split-contrast .edition{color:var(--paper)} -@media print{@page{size:1080px 1440px;margin:0}body{background:transparent}.pl-frame{width:1080px;max-width:none}.pl-sheet{print-color-adjust:exact;-webkit-print-color-adjust:exact}}`; +export {layouts}; const p=(text:string):Block=>({type:'paragraph',text}); const h=(text:string):Block=>({type:'heading',text}); const code=(text:string):Block=>({type:'code',text}); const links=(...refs:string[]):Block=>({type:'links',refs}); -const path=(slug:string)=>'premium-layout/'+slug; -const doc=(slug:string,title:string):GuidanceResource=>({id:slug,kind:'document',title,documentPath:path(slug),href:guidanceUrl(path(slug))+'?agent_mode=True',human:guidanceUrl(path(slug))}); -const image=(slug:string,title:string):GuidanceResource=>({id:'cover',kind:'image',title,href:'/layout-recipes/'+slug+'.png'}); -export function recipeCss(recipe:typeof recipes[number]){return baseCss+'\n'+recipe.css.replaceAll('.sheet','.pl-sheet');} -export function posterMarkup(recipe:typeof recipes[number]){return `
\n${recipe.markup}\n
FORM / STUDIES2026 · ${String(recipes.indexOf(recipe)+1).padStart(2,'0')}
\n
`;} -export function recipeHtml(recipe:typeof recipes[number]){return `\n\n\n\n\n${recipe.name} · 排版示例\n\n\n\n${posterMarkup(recipe)}\n\n`;} -export function recipeReact(recipe:typeof recipes[number]){ - const title=recipe.markup.match(/

([\s\S]*?)<\/h1>/)![1].replace(//g,' '); - const subtitle=recipe.markup.match(/

([\s\S]*?)<\/p>/)![1]; - const jsx=posterMarkup(recipe).replace(/

[\s\S]*?<\/h1>/,'

{title}

').replace(/

[\s\S]*?<\/p>/,'

{subtitle}

').replaceAll('class=','className=').replaceAll('
','
'); - return `// components/layouts/${recipe.slug}/LayoutPoster.tsx\ntype PosterProps = { title?: string; subtitle?: string };\nexport default function LayoutPoster({title = ${JSON.stringify(title)}, subtitle = ${JSON.stringify(subtitle)}}: PosterProps) {\n return (\n${jsx}\n );\n}`; -} -export function recipeNext(recipe:typeof recipes[number]){return `// app/designs/${recipe.slug}/page.tsx\nimport type { Metadata } from 'next';\nimport LayoutPoster from '@/components/layouts/${recipe.slug}/LayoutPoster';\nimport '@/components/layouts/${recipe.slug}/poster.css';\nexport const metadata: Metadata = { title: '${recipe.name} | FORM STUDIES' };\nexport default function Page() {\n return
;\n}`;} -export const layoutDocuments:GuidanceDocument[]=[{ - path:path('router'),title:'高级感排版 · 设计 Router',collection:'高级感排版', - resources:[image('router','12 套构图的结构索引'),...recipes.map((r,i)=>doc(r.slug,`${String(i+1).padStart(2,'0')} · ${r.name}`))], - blocks:[p('把“高级感”变成可执行的构图决策:先识别内容,再选择一套主构图,最后按 HTML、React 或 Next.js 环境实现。这里提供 12 套独立排版方法,风格来自用户提供的灰绿与纸白排版拼贴参考;所有示意图均为重新编排的结构图,不是原图拆分、原作者模板或代码效果截图。'), - h('输入协议'),p('收集用途(海报、封面、网页首屏或正文)、画板比例、主题标题、正文长度、主图数量、品牌色、素材来源与输出技术栈。缺省使用 1080×1440、4—8 字中文标题、40 字以内导语、纸白与灰绿。若用户给出品牌规范或尺寸,优先遵守。内容超过 90 字,先拆成多页或独立阅读正文。'), - code(JSON.stringify({task:'展览预告',canvas:{width:1080,height:1440},title:'秩序之间',body:'一段不超过 40 字的导语',images:2,tone:'克制、编辑感',stack:'next-app',output:['源码','PNG','检查记录']},null,2)), - h('选择器:先按信息结构筛选'), - p(recipes.map((r,i)=>`${String(i+1).padStart(2,'0')} / ${r.name}:${r.scene}。避免:${r.avoid}。`).join('\n')), - links(...recipes.map(r=>r.slug)), - h('调度规则与冲突优先级'),p('先满足可读性与内容完整,再满足品牌规范,最后考虑情绪。只有一张主图且短中文标题→窄轨竖排;两张主图→错位双矩形;三至六项并列→模块网格;两种观点→双区对照;文字宣言→巨字;文化导读→衬线刊头;其余按主题在圆形、弧面、色带、卡片、标注和字框之间选择。一页只选一套主构图,可借用另一套的一个小元素;不要同时叠加巨字、斜卡、圆环和多组线条。'), - code(`type Input = { items: number; images: number; verticalTitle?: boolean; comparison?: boolean; statement?: boolean; editorial?: boolean };\nexport function selectLayout(x: Input) {\n if (x.items >= 3 && x.items <= 6) return 'modular-grid';\n if (x.comparison) return 'split-contrast';\n if (x.images === 2) return 'offset-panels';\n if (x.images === 1 && x.verticalTitle) return 'vertical-rail';\n if (x.statement) return 'monumental-type';\n if (x.editorial) return 'editorial-serif';\n return 'organic-ellipse';\n}\n// 这是首轮候选选择器;items > 6 或长正文先分页,再由设计师审阅。`), - h('三条实现路线'),p('HTML:子文档中的完整 HTML 保存为 poster.html 即可运行。React:将 TSX 放在文档标明的组件目录,将同篇 CSS 代码保存为 poster.css,在应用入口 import CSS。Next.js App Router:使用同篇 TSX、CSS 和 page.tsx;保留项目已有根布局。示例中的 @/ 指向项目根目录;使用 src/ 结构时,所有路径整体移到 src/ 下,并沿用项目别名。此系列是面向 App Router 的使用文档;当前知识站本身沿用已有架构。'), - h('Next.js:新项目根布局'),code(`// app/layout.tsx;已有项目合并 lang 等必要设置,不重复嵌套 html/body。\nimport type { ReactNode } from 'react';\nexport default function RootLayout({ children }: { children: ReactNode }) {\n return {children};\n}`), - h('图片与字体'),p('所有色块都是显式结构占位,不是已加载的照片。有图片时把目标 panel div 改为 figure 并清除默认 margin;使用绝对定位的 img、width:100%、height:100%、object-fit:cover。先核对人物和产品是否被裁切;需要完整展示时改用 contain。正文 alt 描述实际图片;纯装饰使用空 alt。Next.js 使用下列 Image 写法;提供自己的本地照片,不复制参考图的品牌、二维码或未知授权素材。'), - code(`// 放在目标 panel 内;父容器保留对应布局的 absolute 与宽高,并设置 margin:0。\nimport Image from 'next/image';\n// public/hero.jpg 由你提供;sizes 表示图片显示宽度,不是原图像素。\n
\n 描述实际主体\n
\n// sizes 的 68% 仅对应双矩形主块;其他构图按自己的宽度调整。`), - p('默认示例使用系统字体,因设备不同可能换行。正式交付使用已获授权的本地中文字体和拉丁字体,限定两类字体;校验字重、缺字与标点。Next.js 可在根布局用 next/font/local 接入,路径相对该文件;只有提供了真实文件才启用。'), - code(`// 可选 app/layout.tsx;先放入 app/fonts/editorial.woff2。\nimport localFont from 'next/font/local';\nimport type { ReactNode } from 'react';\nconst editorial = localFont({src:'./fonts/editorial.woff2',display:'swap'});\nexport default function RootLayout({children}:{children:ReactNode}) {\n return {children};\n}`), - h('交互、高级工具与边界'),p('静态海报组件保持纯渲染;在 App Router 中可直接作为 Server Component。调色器、拖拽和动画控制单独放到带 use client 的小组件,通过 props 传入标题和配色。不要在服务端组件中读取 window,不把整页静态排版改为客户端渲染。需要自由曲线或严格字距时使用 SVG;需要复杂材质时再引入 Canvas/WebGL,并保留文字 DOM、静态后备图与 prefers-reduced-motion 支持。Figma 等工具可复刻同一网格与令牌;最终交付必须保留可编辑源文件。'), - h('统一令牌与代码组合'),p('每套示例独立运行;同一网页并列展示多套时,base CSS 只引入一次,各篇布局 CSS 按 slug 命名。示例中的 body 样式只适用于独立海报页,接入现有产品时移除;所有 .pl-frame / .pl-sheet 类应保留以维持容器单位。最小留白为画板宽的 7%(约 76px),底部版本行例外;正文默认 24px,说明至少 18px。深灰绿只用作形状与大字背景,小字优先深墨色与纸白。'), - h('海报缩放与网页阅读模式'),p('1080×1440 示例按整张海报等比缩放,因此手机上小字会随画板缩小,不能直接用作长文阅读页。网页交付时在海报后提供真实标题与正文,或采用下面的 reading 模式,取消绝对定位与裁切,以 16px 以上正文、自然高度重排。装饰巨字与圆环在阅读模式隐藏;视觉海报与阅读版之间避免重复朗读,可把纯展示海报整体标 aria-hidden。'), - code(`/* 可选:把 reading 类加在 pl-frame 上,用于网页内容流。 */\n.reading .pl-sheet{aspect-ratio:auto;overflow:visible;font-size:10px;padding:32px 24px}\n.reading .pl-sheet .title,.reading .pl-sheet .copy,.reading .pl-sheet .answer,.reading .pl-sheet .sub{position:static;width:auto;max-width:none;writing-mode:horizontal-tb;color:var(--ink);margin:0 0 24px}\n.reading .pl-sheet .title,.reading .pl-sheet .answer,.reading .pl-sheet .sub{font-size:32px}\n.reading .pl-sheet .copy{font-size:16px}\n.reading .pl-sheet .panel,.reading .pl-sheet .orbit,.reading .pl-sheet .oval,.reading .pl-sheet .band,.reading .pl-sheet .dark,.reading .pl-sheet .measure,.reading .pl-sheet .tag,.reading .pl-sheet .rule,.reading .pl-sheet .display,.reading .pl-sheet .corners,.reading .pl-sheet .center{display:none}\n.reading .pl-sheet .grid{position:static;display:grid;grid-template-columns:1fr;gap:16px}\n.reading .pl-sheet .cell{font-size:16px;padding:16px}\n.reading .pl-sheet .edition{position:static;font-size:12px;margin-top:32px}`), - h('执行、验收与交付协议'),p('1. 先输出 layout_id、选择理由与内容预算。2. 阅读对应子文档,生成源码并替换所有占位内容。3. 对最终页面在 1080×1440 截图,并检查 375px 与 768px:无意外横向溢出、主标题不裁切、图片主体完整。4. 验证阅读顺序、替代文本与实际文字对比;普通正文目标至少 4.5:1,大字至少 3:1。5. 若标题超出预算,先改字或减字号,再缩减装饰,不能悄悄裁掉语义文字。6. 交付源代码、使用字体与素材说明、PNG/PDF 和检查记录。'), - p('使用截图工具时等待 document.fonts.ready 与图片 decode;若使用动画,先冻结在指定帧。确认画板真实像素为 1080×1440、deviceScaleFactor=1,避免生成双倍尺寸。示意封面仅展示构图语法;生产导出必须重新渲染自己的实际源码。'), - code(JSON.stringify({layout_id:'offset-panels',reason:'两张主图,主次明确',stack:'next-app',files:['LayoutPoster.tsx','poster.css','page.tsx'],checks:{canvas:'1080x1440',title:'待验收',mobile:'待验收',contrast:'待验收'},assets:'填写字体与图片来源'},null,2)), +const doc=(id:string,title:string):GuidanceResource=>({id,kind:'document',title,documentPath:'premium-layout/'+id,href:guidanceUrl('premium-layout/'+id)+'?agent_mode=True',human:guidanceUrl('premium-layout/'+id)}); +const file=(id:string,title:string,href:string):GuidanceResource=>({id,kind:'document',title,href}); +const image=(id:string,title:string,href:string):GuidanceResource=>({id,kind:'image',title,href}); +const typeName=(kind:string)=>kind==='text'?'文字':kind==='image'?'图片占位 / 色块':'装饰'; +const sourceNote='原始拼图仅 736×980,每张约 112×173 像素。小字无法可靠辨认;其内容标为待核对,并保存独立原字形图层。放大不会恢复缺失信息。灰绿色区域为原设计中的图片占位 / 色块,参考图没有可辨认的真实照片。'; +export const legacyLayoutIds=['5971fc3d2563aa8005df5c13','9ad47529a7eaeee1fef771ca','7f158059ba3a2b80dd750cc3','370d1881f229af63f1946df9','31a978620a0d388f84772c95','c34cf81137654ad38850c9bd','dbe94ccaa708bd120549ae86','768587e537d6f1ee77a51961','0962c2bf1c558e0e32425f59','347b732caa4af4afa43b65a4','3edf144a443c1fdf23827fb3','97227671a9dc95c4948e591b']; +export function reactExample(id:string){return `// components/Example.tsx\nimport ReferenceLayout from './reference-layouts/ReferenceLayout';\nexport default function Example() {\n return ;\n}\n// 原样模式使用该 ID 的独立图层,保留原字形与原构图。\n// 组件、manifest.json 和 public/layout-reference 素材必须一起复制。`} +export function nextExample(id:string){return `// app/designs/${id}/page.tsx\nimport type { Metadata } from 'next';\nimport ReferenceLayout from '@/components/reference-layouts/ReferenceLayout';\nexport const metadata: Metadata = {title:'${id} · 原图对应排版'};\nexport default function Page() {\n return
;\n}\n// 沿用项目根布局。@/ 指向源码根,组件可直接作为 Server Component。`} +export function htmlExample(id:string){return `\n${id}\n\n
\n`} +const router:GuidanceDocument={ + path:'premium-layout/router',title:'高级感排版 · 27 张原图 Router',collection:'高级感排版', + resources:[image('source-map','27 张原图编号对应图','/layout-reference/numbered-source.png'),file('inspector','27 张构件检查器','/layout-reference/index.html'),file('index-json','27 张机器索引','/layout-reference/index.json'),file('runtime','React / TSX 完整组件源文件','/layout-reference/ReferenceLayout.tsx'),file('manifest','React 组件配套 manifest.json','/layout-reference/manifest.json'),file('bundle','27 张完整源码与素材 ZIP','/layout-reference/layout-reference-toolkit.zip'),...layouts.map(l=>doc(l.id,l.id+' · '+l.name))], + blocks:[p('本系列严格对应用户参考图中的 27 张独立设计,每张保留自己的原图裁片、文字、图片占位 / 色块、装饰和坐标。左侧“高级感排版 / 模板合集”说明栏不计入。编号从上到下、每行从左到右:前 3 行各 5 张,后 2 行各 6 张,共 27 张设计 post,另有本篇 Router。'), + h('先查原图编号,再调用固定 ID'),links('inspector','index-json','bundle'),p('指定 ref-01 至 ref-27 中的一个 ID。禁止把旧的“同心圆”“巨字”等类型名当成任意近似模板;每个 ID 只对应一个 source.box、一份 manifest 和本设计的构件。无法确定编号时先返回候选原图裁片,由使用者选择,再生成。'), + p('| ID | 原图位置(含左侧说明栏所在列) | 对应设计 |\n| --- | --- | --- |\n'+layouts.map(l=>`| ${l.id} | 第 ${l.source.row} 行、第 ${l.source.column} 列 | ${l.name} |`).join('\n')), + links(...layouts.map(l=>l.id)), + h('识别算法与人工复核'),p('1. 从拼图外沿采样灰底,按 RGB 最大通道差 >19 建立前景二值掩膜。2. 四邻域连通域提取外框,按宽 86–124px、高 146–189px 过滤,检测出 27 张卡片。3. 按 y 坐标聚成 5 行,行内按 x 排序,保存绝对裁片坐标。4. 使用本机 macOS Vision 提取 OCR 候选与置信度,再逐张复核文字区、色块与装饰 ROI。5. 根据各图位的局部颜色种子建立图形掩膜,文字前景独立分离;残余字形按基线、间距、字高与已有文字块合并。6. 对所有独立图层重组并执行像素比较。'), + p('OCR 置信度不是事实保证;本清单对可读标题进行了人工核对。ref-01 的品牌字标整体为 T01,不能把末尾字符再标为 T03。编号在一张图内按文字 T、图片占位 I、装饰 D 分组;对外调用使用完整键 ref-01/T01,防止跨版面混用。'), + h('三类构件及背景'),p('T / text:标题、正文、品牌字、日期、图注与字距标签。文字不属于图片区;已核对内容记录在 text 字段,无法辨认的内容为 null。I / image:原设计的图片占位或灰绿色色块。它们可由实际照片替换,原始形状和位置由 mask 保持;本参考没有真实照片。D / decoration:线框、圆环、圆节点、引线、分隔线与贴条。纸底与原拼图画框单独保存在 background。'), + h('必须区分:保真重组与可编辑替换'),p('默认模式按分类好的原图构件重组,保留原字形和像素;它不是高分辨率矢量重绘,也不意味着 OCR 全部识别正确。替换模式按同一 ID 和原坐标渲染新文字或新图片;字体与内容变化会产生视觉差异。替换过的版本不得称为与原图逐像素一致。曲线文字保留原字形,若要替换须沿该版面的专用 SVG 路径排字,通用组件会拒绝普通文本替换,以免把弧形改成直排。'),p(sourceNote), + h('严格调用协议'),code(JSON.stringify({layoutId:'ref-01',mode:'reference',sourceBox:layouts[0].source.box,components:{'ref-01/T01':{kind:'text',role:'品牌字标'},'ref-01/T02':{kind:'text',role:'左下说明'},'ref-01/I01':{kind:'image',role:'上方主图'},'ref-01/I02':{kind:'image',role:'下方副图'}}},null,2)), + h('React / TSX 与 Next.js 文件准备'),links('runtime','manifest','bundle'),p('将 ZIP 中 components/reference-layouts 放进项目组件目录,将 public/layout-reference 放到项目 public 下。React 项目直接导入组件使用;Next.js App Router 可将组件保留为 Server Component。已有根布局继续沿用,设置中文 lang,按项目路径调整 @/ 别名。只有图层开关、拖拽或编辑器等交互外壳需要 use client;图片和字形保真层使用原生 img 避免优化改变原像素或透明遮罩。'), + code(reactExample('ref-01')),code(nextExample('ref-01')), + h('替换必须按构件类型和完整键执行'),code(`import ReferenceLayout from './reference-layouts/ReferenceLayout';\nexport default function Customized() {\n return ;\n}\n// ref-02/T01 不能传给 ref-01;I01 不能作为文字键。运行时会拒绝。\n// 保留某个构件原样:不要传对应键。未知细字不能猜写。`), + h('字体、图片与高级工具'),p('参考图中的字形已保存在独立文字资产;尚不能从低清拼图可靠确定具体字体。编辑时使用用户提供且已授权的中文 / 拉丁字体,先检查横排、竖排、旋转和倾斜方向,再调整字距与行距。SVG 适用于弧形文字和可编辑轮廓,Figma 可按每张 manifest 的源坐标建立画板与图层;不要重新套用另一张版面的圆形、网格或色块位置。图片替换采用 cover,并保留本设计的 mask;需要完整主体时先检查裁切。'), + h('验收与停止条件'),p('逐张核对原裁片、编号和 source.box;检查文字、图片占位和装饰三类掩膜。默认模式必须逐像素重组一致;该检查只证明资产重组保真,不证明语义标注或 OCR 一定正确,仍须核对标注图。特别检查同一单词是否被拆成两个 T、数字是否被旋转标题吞并、底线是否被并入文字。调用时不能跨设计借构件。更换内容后再次检查溢出、换行、透明边缘与图片裁切。网页正文另外提供可读的 DOM 文本,不把 112×173 的海报小字当作移动端正文。'), ], -},...recipes.map((r,i):GuidanceDocument=>({ - path:path(r.slug),title:`${String(i+1).padStart(2,'0')} · ${r.name}`,collection:'高级感排版', - resources:[image(r.slug,r.name+' · 结构示意,非代码截图'),doc('router','总览 Router · 选择、技术栈与交付协议'),{id:'demo',kind:'document',title:'打开可运行 HTML 示例',href:'/layout-recipes/'+r.slug+'.html'}], - blocks:[p(`${r.name}:${r.scene}。本篇是一套可执行的设计配方;封面是独立绘制的构图示意,实际示例以 HTML/CSS 与 React 组件为准。`),h('何时使用与停止条件'),p(`适用:${r.scene}。不适用:${r.avoid}。标题默认 4—8 个汉字、正文不超过 40 字;超出时先拆页或转阅读版。品牌色与素材可替换,保持构图关系。`),h('构图参数'),p(r.geometry),p('默认 1080×1440,3:4;纸白 #f5f3ec,灰绿 #9aa6a5,深灰绿 #5d706e,文字 #243230。字号按画板缩放:1em=10.8px,正文 2.22em≈24px。网页阅读模式、字体与图片替换规则由总览 Router 统一管理。'),h('制作步骤'),p(r.steps),h('HTML / CSS:完整独立文件'),p('复制以下完整代码到 poster.html;默认无需网络资源。色块为占位,替换素材时遵守 Router 的图像与版权协议。'),code(recipeHtml(r)),links('demo'),h('React / TSX:可复用组件'),p(`保存为 components/layouts/${r.slug}/LayoutPoster.tsx;支持 title 与 subtitle 字符串 props。把下段 CSS 保存为同目录 poster.css,并在 React 应用入口导入。静态组件不需要 use client。`),code(recipeReact(r)),h('React 与 Next.js 共用 CSS'),code(recipeCss(r)),h('Next.js App Router:路由接入'),p(`下面的 page.tsx 对应 /designs/${r.slug},使用上面的组件和 CSS。新项目根布局、路径别名、next/image、next/font/local 与交互边界见 Router;已有项目保留自己的根布局。`),code(recipeNext(r)),h('本构图的验收标准'),p(r.check),p('共同检查:1080×1440 下标题完整、正文与底部版本行不重叠;375px 和 768px 下等比海报无意外横向滚动。若用于网页正文,启用 Router 的阅读模式并逐项检查。所有示例只有系统字体与结构占位,替换真实标题、字体和图片后须重新验收。'),h('变体与修改顺序'),p('先替换真实内容,再调整标题字号与说明长度,随后微调图形位置;最后才改变背景色和装饰。只调整该 slug 下的布局规则,避免影响其他构图。交付保留 HTML 或 TSX/CSS 源码、素材说明与导出文件。'),links('router'), - ], -}))]; +}; +export const layoutDocuments:GuidanceDocument[]=[router,...layouts.map((l):GuidanceDocument=>{ + const title=l.id+' · '+l.name; + const texts=l.elements.filter(e=>e.kind==='text'),images=l.elements.filter(e=>e.kind==='image'),decor=l.elements.filter(e=>e.kind==='decoration'); + return {path:'premium-layout/'+l.id,title,collection:'高级感排版',resources:[image('reference',l.id+' · 原图裁片',l.reference),image('annotated',l.id+' · 文字/图片/装饰标注',l.annotated),image('text-map',l.id+' · 仅文字掩膜(蓝色)',`/layout-reference/${l.id}/text-map.png`),image('image-map',l.id+' · 仅图片占位/色块(橙色)',`/layout-reference/${l.id}/image-map.png`),image('decor-map',l.id+' · 仅装饰掩膜(绿色)',`/layout-reference/${l.id}/decoration-map.png`),doc('router','27 张原图 Router'),file('inspect','打开本设计构件检查器',`/layout-reference/${l.id}/index.html`),file('json','本设计完整构件 JSON',`/layout-reference/${l.id}/manifest.json`),file('runtime','React 完整组件','/layout-reference/ReferenceLayout.tsx'),file('bundle','完整源码与素材 ZIP','/layout-reference/layout-reference-toolkit.zip')],blocks:[ + p(`${l.id} 只对应原图第 ${l.source.row} 行、可见第 ${l.source.column} 列的“${l.name}”。原裁片坐标 [x,y,w,h] = [${l.source.box.join(', ')}];本篇逐项列出文字 ${texts.length} 组、图片占位/色块 ${images.length} 组、装饰 ${decor.length} 组,不替换成近似构图。`),links('inspect','json'), + h('原图与分类图怎么看'),p('本 post 的第 1 张是直接裁出的原版面,第 2 张标出构件框,第 3 张只显示蓝色文字掩膜,第 4 张只显示橙色图片区掩膜,第 5 张只显示绿色装饰。T 与 I 可在坐标上叠放,例如标题压住图位;它们仍是不同类型,不能合并成图片。检查器可独立关闭各类构件并点击表格定位。'), + h('构件逐项对应表'),p('| 完整构件键 | 类型 | 用途 | 本裁片坐标 x,y,w,h | 内容 / 状态 |\n| --- | --- | --- | --- | --- |\n'+l.elements.map(e=>`| ${l.id}/${e.id} | ${typeName(e.kind)} | ${e.role} | ${e.box.join(', ')} | ${e.kind==='text'?(e.text??'待核对,保留原字形'):'非文字'} |`).join('\n')), + h('布局与制作步骤'),p(`1. 以 ${l.width}×${l.height} 的源坐标建立画板;输出可等比放大,比例必须保持 ${l.width}:${l.height}。2. 建立本设计的 ${images.map(e=>e.id+' '+e.role).join('、')},使用对应 mask,保持它们各自位置。3. 单独放置 ${texts.map(e=>e.id+' '+e.role).join('、')},按表内方向与坐标定位。4. 还原 ${decor.map(e=>e.id+' '+e.role).join('、')||'原设计已有的细节'},不得借用别的设计。5. 与原裁片叠加比较,再检查文字是否被图层遮挡。`), + h('文字和图层的具体规则'),p(texts.map(e=>`${e.id}:${e.direction==='vertical'?'竖排':e.direction==='rotated'?'整体旋转排字':e.direction==='angled'?'倾斜排字':e.direction==='curved'?'沿曲线排字':'横排'};${e.text?'已核对可读内容“'+e.text+'”':'内容无法可靠辨认,保留原字形,不编造正文'}。`).join('\n')),p(sourceNote), + h('HTML / CSS:固定本设计 ID'),code(htmlExample(l.id)), + h('React / TSX:固定本设计组件'),code(reactExample(l.id)),links('runtime','bundle'), + h('Next.js App Router:固定本设计路由'),code(nextExample(l.id)), + h('本设计的验收标准'),p(`layoutId 必须等于 ${l.id},source.box 必须为 [${l.source.box.join(', ')}];所有构件资产必须来自 /layout-reference/${l.id}/。核对本篇 ${texts.length} 组 T、${images.length} 组 I、${decor.length} 组 D 的归属和坐标。默认原字形模式的图层拼回与原裁片一致;文字替换模式则按布局与可读性验收,不再声称像素一致。原字标、日期和细字不能因为识别残余而重复编号。`),links('router'), + ]}; +})]; diff --git a/apps/wiki/src/content/layouts/recipes.json b/apps/wiki/src/content/layouts/recipes.json deleted file mode 100644 index af371c5..0000000 --- a/apps/wiki/src/content/layouts/recipes.json +++ /dev/null @@ -1,146 +0,0 @@ -[ - { - "slug": "offset-panels", - "name": "错位双矩形", - "scene": "作品集封面、摄影选集、两张主图的品牌提案", - "avoid": "三张以上同等重要的图;长篇正文", - "geometry": "主块 x=18%、y=16%、w=68%、h=37%;副块 x=37%、y=57%、w=49%、h=31%;左侧留下文字呼吸带。", - "steps": "先让两块右边缘对齐;再用不等宽与 4% 的竖向间隔制造节奏;把标题留在左上,说明压到左下。", - "check": "两块不接触;主块面积大于副块;标题与图块相距至少 24px;替换图片后两个容器比例不变。", - "css": ".sheet.offset-panels .panel-a{left:18%;top:16%;width:68%;height:37%}.sheet.offset-panels .panel-b{left:37%;top:57%;width:49%;height:31%;background:var(--deep)}.sheet.offset-panels .title{left:7%;top:6%;font-size:6em}.sheet.offset-panels .copy{left:7%;top:66%;width:25%}", - "markup": "
\n
\n

秩序之间

\n

以留白建立关系,\n让视线缓慢移动。

", - "shapes": "" - }, - { - "slug": "vertical-rail", - "name": "窄轨竖排", - "scene": "东方文化、书籍封面、展览预告;短中文标题", - "avoid": "长英文标题;必须快速扫读的大段信息", - "geometry": "主图占左侧 64%×76%,位于 x=7%、y=12%;右侧 14% 为竖排轨道;中间留 5% 通道。", - "steps": "先画主矩形;右侧建立独立竖排栏;中文使用 vertical-rl,数字日期保持横向;底部信息与主图左边对齐。", - "check": "竖排标题不超过 8 个汉字;拉丁单词不要逐字竖排;正文横排;文字不进入主图安全区。", - "css": ".sheet.vertical-rail .panel-a{left:7%;top:12%;width:64%;height:76%;background:var(--deep)}.sheet.vertical-rail .title{right:8%;top:13%;writing-mode:vertical-rl;font-size:6.3em;letter-spacing:.15em}.sheet.vertical-rail .copy{left:7%;bottom:5%;width:64%}", - "markup": "
\n

静物的秩序

\n

空间研究 / 第二辑 / 2026

", - "shapes": "" - }, - { - "slug": "monumental-type", - "name": "巨字与裁切", - "scene": "品牌宣言、创意节、单词主题封面", - "avoid": "说明密集的教程内页;不可裁切的商标", - "geometry": "中央横跨 96% 的巨字,字号 240px;底部色块高 40%;可裁切装饰英文,中文信息保持完整。", - "steps": "先写完整可读的中文主题;再将一个英文词放大并裁掉外缘 4%;让巨字压住色块边界;日期与说明保持小尺寸。", - "check": "裁切只作用于装饰字;H1 与正文不裁切;英文与主题有语义关联;字号层级至少 3:1。", - "css": ".sheet.monumental-type .panel-a{left:0;bottom:0;width:100%;height:40%;background:var(--deep)}.sheet.monumental-type .display{position:absolute;left:-4%;top:26%;font:bold 24em/.8 Georgia,serif;letter-spacing:-.08em}.sheet.monumental-type .title{left:7%;top:10%;font-size:6em}.sheet.monumental-type .copy{left:7%;bottom:10%;width:60%;color:var(--paper)}", - "markup": "
\n
FORM
\n

形式与留白

\n

让一个词成为画面的重心。\nDESIGN STUDIES / 2026

", - "shapes": "FORM" - }, - { - "slug": "orbital-rings", - "name": "同心圆与轨道", - "scene": "年度回顾、声音主题、循环或时间概念", - "avoid": "方形实物必须完整展示的产品图;严肃数据图表", - "geometry": "圆心位于画板 (50%,43%);直径 72% 画板宽;三层外环等距;下方 18% 为说明区。", - "steps": "用 aspect-ratio 保持正圆;三层细线围绕同一圆心;一处小圆作节拍;标题和说明放在圆外,避免环形正文。", - "check": "窄屏仍为正圆;环线不穿过文字;不要把装饰环误称数据刻度;有动画时尊重减少动态偏好。", - "css": ".sheet.orbital-rings .orbit{position:absolute;left:14%;top:16%;width:72%;aspect-ratio:1;border-radius:50%;background:var(--deep);box-shadow:0 0 0 1.2em var(--paper),0 0 0 1.3em var(--muted),0 0 0 2.5em var(--paper),0 0 0 2.6em var(--muted),0 0 0 3.8em var(--paper),0 0 0 3.9em var(--muted)}.sheet.orbital-rings .title{left:7%;bottom:15%;font-size:6.5em}.sheet.orbital-rings .copy{left:7%;bottom:6%;width:80%}", - "markup": "
\n

周而复始

\n

时间的形状 / ANNUAL REVIEW / 2026

", - "shapes": "" - }, - { - "slug": "organic-ellipse", - "name": "有机椭圆与弧面", - "scene": "生活方式、艺术展、柔和的品牌视觉", - "avoid": "精准工程数据;需要硬边产品轮廓的主视觉", - "geometry": "宽 102%、高 62% 的椭圆自右侧出血;中心落在右半区;左上与左下各保留一块完整文字区。", - "steps": "先建立椭圆,旋转 -12 度;只裁掉形状外缘;标题放左上,说明放左下;不要再叠加第二个大形状。", - "check": "椭圆与标题无交叠;出血边缘不生成横向滚动;曲线的视觉重量在右侧;正文底部安全距至少 64px。", - "css": ".sheet.organic-ellipse .oval{position:absolute;left:24%;top:27%;width:102%;height:62%;border-radius:50%;transform:rotate(-12deg);background:var(--deep)}.sheet.organic-ellipse .title{left:7%;top:10%;font-size:6.5em}.sheet.organic-ellipse .copy{left:7%;bottom:7%;width:40%}", - "markup": "
\n

缓慢生长

\n

一条曲线,\n一处停顿。

", - "shapes": "" - }, - { - "slug": "modular-grid", - "name": "模块网格与索引", - "scene": "作品目录、系列课程、设计档案;3—6 个平级项目", - "avoid": "只有一张图的情绪封面;长故事", - "geometry": "12 栏思维;主体为两列三行,列间距 3%、行间距 2%;左上预留标题与索引。", - "steps": "先确定信息项数量;使用等宽网格;每格保留编号与短标题;只用一个深色格建立主次,其余保持同一色阶。", - "check": "顺序与 DOM 阅读顺序一致;每项标题不超过 8 字;格间距一致;内容超出六项时分页,不能挤小文字。", - "css": ".sheet.modular-grid .grid{position:absolute;left:7%;right:7%;top:28%;bottom:13%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2em}.sheet.modular-grid .cell{padding:2em;background:var(--muted);font-size:2.6em}.sheet.modular-grid .cell:first-child{background:var(--deep);color:var(--paper)}.sheet.modular-grid .title{left:7%;top:10%;font-size:6.5em}.sheet.modular-grid .copy{left:7%;bottom:5%;width:86%}", - "markup": "

视觉档案

\n
01 / 观察
02 / 结构
03 / 材料
04 / 字体
05 / 色彩
06 / 留白
\n

INDEX / SIX DESIGN STUDIES

", - "shapes": "" - }, - { - "slug": "editorial-serif", - "name": "衬线刊头与杂志栏", - "scene": "文化杂志、建筑专题、品牌故事导读", - "avoid": "紧急公告;复杂交互控制台", - "geometry": "顶部刊头高 18%;中央图块占 58%×49%;右侧 25% 为短导语;底部期号区与分隔线对齐。", - "steps": "用衬线字建立刊头;用无衬线字写导语;主图与旁栏共用顶部基线;正文超过 90 个汉字就另起阅读页。", - "check": "全页最多两类字体;标题不超过两行;导语每行约 10—14 字;细线只分区,不包围所有段落。", - "css": ".sheet.editorial-serif .title{left:7%;top:7%;font:7.8em/.95 Georgia,\"Songti SC\",serif}.sheet.editorial-serif .panel-a{left:7%;top:32%;width:58%;height:49%}.sheet.editorial-serif .copy{left:70%;top:33%;width:23%;font-size:2em;line-height:1.8}.sheet.editorial-serif .rule{position:absolute;left:7%;right:7%;top:27%;border-top:.15em solid var(--ink)}", - "markup": "

Quiet
Design

\n
\n
\n

从一块留白开始,观察材料、光线与文字之间的关系。

", - "shapes": "" - }, - { - "slug": "horizontal-band", - "name": "横向色带与断层", - "scene": "章节扉页、品牌手册、主题分组页", - "avoid": "三段以上相互独立的内容;密集菜单", - "geometry": "中央色带贯穿 100% 宽,位于 y=34%—67%;标题跨上边界,说明置于底部左侧。", - "steps": "先画全宽色带;把一个短主题放在色带上方;用浅底与深带产生节奏;底部元信息保持同一左边界。", - "check": "标题不能被色带边界切成难读的两段;带内文字保持足够对比;色带只负责分区,不伪装成按钮。", - "css": ".sheet.horizontal-band .band{position:absolute;left:0;top:34%;width:100%;height:33%;background:var(--deep)}.sheet.horizontal-band .title{left:7%;top:12%;font-size:7em}.sheet.horizontal-band .sub{position:absolute;left:7%;top:43%;font-size:5.5em;color:var(--paper);line-height:1.1}.sheet.horizontal-band .copy{left:7%;bottom:12%;width:65%}", - "markup": "
\n

留白练习

\n

CHAPTER
ZERO

\n

以一道横向色带,\n建立章节之间的停顿。

", - "shapes": "CHAPTER ZERO" - }, - { - "slug": "diagonal-cards", - "name": "轻斜卡片与拼贴", - "scene": "创意工作室、实验记录、艺术项目封面", - "avoid": "正式表格;大量小字;多张同时倾斜的图", - "geometry": "后卡片旋转 -5 度,前卡片旋转 3 度;两张卡错开 6%;组合限制在 x=14%—86%、y=24%—78%。", - "steps": "先构造两张同尺寸卡片;只给前后卡片相反的小角度;固定重叠顺序;标题和说明始终水平。", - "check": "倾斜不超过 6 度;角点留在安全区;不要给正文整体旋转;阴影只用一层低透明度。", - "css": ".sheet.diagonal-cards .back{left:14%;top:27%;width:66%;height:49%;transform:rotate(-5deg);background:#dce0da}.sheet.diagonal-cards .front{left:20%;top:29%;width:66%;height:49%;transform:rotate(3deg);background:var(--deep);box-shadow:0 .6em 1.2em #24323015}.sheet.diagonal-cards .title{left:7%;top:8%;font-size:6.5em}.sheet.diagonal-cards .copy{left:7%;bottom:8%;width:80%}", - "markup": "
\n
\n

纸上的实验

\n

材料笔记 / 两张卡片的轻微偏移

", - "shapes": "" - }, - { - "slug": "annotation-lines", - "name": "细线标注与技术图录", - "scene": "产品细节、工艺流程、设计参数的导读页", - "avoid": "真实数值图表;没有可解释对象的纯装饰", - "geometry": "中心图块位于 x=20%、y=24%,宽 60%、高 48%;两侧各有一条标注线;上方标题、下方解释。", - "steps": "确定真正要说明的两个部位;用 1—2px 线连接短标注;线条不得穿过文字;尺寸和参数必须由真实资料提供。", - "check": "线条最多三条;每条标注有对应对象;示意数字注明非测量值;线宽导出后仍清晰。", - "css": ".sheet.annotation-lines .panel-a{left:20%;top:24%;width:60%;height:48%}.sheet.annotation-lines .measure{position:absolute;left:8%;top:35%;width:84%;height:24%;border-top:.15em solid var(--ink);border-bottom:.15em solid var(--ink)}.sheet.annotation-lines .tag{position:absolute;left:8%;top:31%;font-size:1.8em;background:var(--paper);padding:.2em}.sheet.annotation-lines .title{left:7%;top:9%;font-size:6.5em}.sheet.annotation-lines .copy{left:7%;bottom:10%;width:75%}", - "markup": "
\n
\nA / 表面结构示意\n

细节的尺度

\n

标注用于解释真实细节。\n本例色块为结构占位,并非实物测量。

", - "shapes": "" - }, - { - "slug": "split-contrast", - "name": "双区对照与大留白", - "scene": "新旧对照、两种材质、设计观点对谈", - "avoid": "需要精密等量比较的统计图;超过两种方案", - "geometry": "上区 48% 高保留纸白;下区 52% 为深灰绿;两个信息块以相同左边界连接。", - "steps": "先确认两个区块是对照还是递进;上下各保留一处标题;深区使用浅字;用相同编号系统说明关系。", - "check": "两个区域的关系能一句话说清;深区小字对比足够;边界没有压住文字;阅读顺序先上后下。", - "css": ".sheet.split-contrast .dark{position:absolute;left:0;top:48%;width:100%;height:52%;background:var(--deep)}.sheet.split-contrast .title{left:7%;top:12%;font-size:7.5em}.sheet.split-contrast .answer{position:absolute;left:7%;top:59%;font-size:7.5em;line-height:1.1;color:var(--paper);margin:0}.sheet.split-contrast .copy{left:7%;bottom:10%;width:80%;color:var(--paper)}", - "markup": "
\n

看见留白

\n

读懂秩序

\n

从空间到关系 / TWO PERSPECTIVES

", - "shapes": "读懂秩序" - }, - { - "slug": "type-frame", - "name": "四角字框与中心场", - "scene": "设计展、海报合集、极短主题的概念封面", - "avoid": "完整句子必须连续阅读的文案;长标题", - "geometry": "四个角字构成外框,中心 58%×52% 为主形;阅读用完整 H1,分散角字仅作为装饰副本。", - "steps": "选择四字主题;先提供完整语义标题;再把四个装饰字分布四角;中央只留一个图形,说明放底部。", - "check": "屏幕阅读器只读一次完整标题;四角不被裁切;中央图形不压字;四角间距视觉平衡。", - "css": ".sheet.type-frame .title{left:7%;top:7%;font-size:3em}.sheet.type-frame .center{position:absolute;left:21%;top:25%;width:58%;height:52%;border-radius:50%;background:var(--muted)}.sheet.type-frame .corners{position:absolute;inset:15% 7% 17%;display:grid;grid-template-columns:1fr 1fr;align-content:space-between;font:10em/1 \"Songti SC\",serif}.sheet.type-frame .corners span:nth-child(even){text-align:right}.sheet.type-frame .copy{left:7%;bottom:6%;width:86%}", - "markup": "

高级排版 / FORM STUDIES

\n
\n
高级排版
\n

四角建立边界,中央保留呼吸。

", - "shapes": "高级排版" - } -] diff --git a/apps/wiki/src/content/layouts/reference/ReferenceLayout.tsx b/apps/wiki/src/content/layouts/reference/ReferenceLayout.tsx new file mode 100644 index 0000000..951bf18 --- /dev/null +++ b/apps/wiki/src/content/layouts/reference/ReferenceLayout.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import type {CSSProperties} from 'react'; +import layouts from './manifest.json'; +export const layoutIds = ['ref-01','ref-02','ref-03','ref-04','ref-05','ref-06','ref-07','ref-08','ref-09','ref-10','ref-11','ref-12','ref-13','ref-14','ref-15','ref-16','ref-17','ref-18','ref-19','ref-20','ref-21','ref-22','ref-23','ref-24','ref-25','ref-26','ref-27'] as const; +export type LayoutId=typeof layoutIds[number]; +export type Replacements={text?:Record;images?:Record}; +export function getLayout(id:string){return layouts.find(layout=>layout.id===id)} +export function validateReplacements(id:string,replacements:Replacements){ + const layout=getLayout(id);if(!layout)throw Error(`Unknown layout ID: ${id}`); + for(const[kind,values]of [['text',replacements.text],['image',replacements.images]] as const)for(const key of Object.keys(values||{})){ + if(!layout.elements.some(e=>key===id+'/'+e.id&&e.kind===kind))throw Error(`Component does not belong to ${id} or has the wrong kind: ${key}`); + }return layout; +} +function textStyle(text:string,box:number[],width:number,direction:string):CSSProperties{ + const vertical=direction==='vertical'||direction==='rotated',lines=text.split('\n'),units=Math.max(...lines.map(line=>Array.from(line).reduce((n,c)=>n+(/[\u3400-\u9fff]/.test(c)?1:.56),0)),1); + const size=vertical?Math.min(box[2],box[3]/Math.max(text.length,1)):Math.min(box[3]/(lines.length*1.1),box[2]/units); + return {fontSize:`${size/width*100}cqw`,lineHeight:1.1,whiteSpace:'pre-wrap',writingMode:vertical?'vertical-rl':undefined,textOrientation:direction==='rotated'?'sideways':undefined,transform:direction==='angled'?'rotate(-12deg)':undefined,transformOrigin:'left center',color:'#222',fontFamily:'"Songti SC", "Noto Serif CJK SC", serif'}; +} +/** Untouched mode reconstructs typed source layers; replacement mode keeps the exact preset geometry. */ +export default function ReferenceLayout({id,text={},images={},assetBase=''}:{id:LayoutId;text?:Record;images?:Record;assetBase?:string}){ + const layout=validateReplacements(id,{text,images}),src=(url:string)=>assetBase+url; + return
+
+ + {layout.elements.map(e=>{ + const[x,y,w,h]=e.box,key=id+'/'+e.id,position:CSSProperties={position:'absolute',left:x/layout.width*100+'%',top:y/layout.height*100+'%',width:w/layout.width*100+'%',height:h/layout.height*100+'%',zIndex:e.kind==='text'?3:e.kind==='decoration'?2:1}; + if(e.kind==='text'&&Object.hasOwn(text,key)){ + if(e.direction==='curved')throw Error(`Curved text requires the source-specific SVG path: ${key}`); + return + {'underlay' in e&&} + {text[key]} + ; + } + if(e.kind==='image'&&Object.hasOwn(images,key))return {e.role}; + return {e.kind==='text'?e.text||`${e.role}:原字形保真,内容未辨识`:''}; + })} +
+
; +} diff --git a/apps/wiki/src/content/layouts/reference/annotations.json b/apps/wiki/src/content/layouts/reference/annotations.json new file mode 100644 index 0000000..c84b0e0 --- /dev/null +++ b/apps/wiki/src/content/layouts/reference/annotations.json @@ -0,0 +1,2726 @@ +[ + { + "name": "双矩形错位与左下说明", + "images": [ + { + "role": "上方主图", + "box": [ + 24, + 14, + 80, + 75 + ], + "seed": [ + 64, + 51.5 + ] + }, + { + "role": "下方副图", + "box": [ + 41, + 93, + 63, + 64 + ], + "seed": [ + 72.5, + 125 + ] + } + ], + "texts": [ + { + "role": "品牌字标", + "box": [ + 2, + 20, + 43, + 15 + ], + "text": "BULUBLUE", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "左下说明", + "box": [ + 3, + 121, + 50, + 34 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "顶部短线", + "box": [ + 39, + 2, + 31, + 5 + ] + }, + { + "role": "底部横线", + "box": [ + 29, + 158, + 59, + 8 + ] + } + ] + }, + { + "name": "四格图片列与双列竖题", + "images": [ + { + "role": "图片一", + "box": [ + 1, + 1, + 44, + 34 + ], + "seed": [ + 23, + 18 + ] + }, + { + "role": "图片二", + "box": [ + 1, + 38, + 47, + 34 + ], + "seed": [ + 24.5, + 56.5 + ] + }, + { + "role": "图片三", + "box": [ + 1, + 74, + 47, + 57 + ], + "seed": [ + 24.5, + 108.5 + ] + }, + { + "role": "图片四", + "box": [ + 1, + 135, + 47, + 30 + ], + "seed": [ + 24.5, + 156.5 + ] + } + ], + "texts": [ + { + "role": "右侧主标题", + "box": [ + 91, + 0, + 20, + 126 + ], + "text": "蓝羽毛版式设计系列", + "direction": "vertical", + "tone": "dark" + }, + { + "role": "中间副标题", + "box": [ + 70, + 0, + 19, + 95 + ], + "text": "版式灵感收藏", + "direction": "vertical", + "tone": "dark" + }, + { + "role": "图片一图注", + "box": [ + 0, + 34, + 26, + 4 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "图片二图注", + "box": [ + 0, + 71, + 29, + 4 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "图片三图注", + "box": [ + 0, + 131, + 39, + 4 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右下说明", + "box": [ + 50, + 81, + 40, + 57 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右下品牌与说明", + "box": [ + 51, + 143, + 55, + 14 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "分栏细线", + "box": [ + 65, + 1, + 2, + 74 + ] + }, + { + "role": "右下横线组", + "box": [ + 50, + 158, + 57, + 12 + ] + } + ] + }, + { + "name": "左上标题与右下错位图", + "images": [ + { + "role": "左上主图", + "box": [ + 1, + 22, + 78, + 84 + ], + "seed": [ + 40, + 64 + ] + }, + { + "role": "右下副图", + "box": [ + 43, + 108, + 66, + 49 + ], + "seed": [ + 76, + 132.5 + ] + } + ], + "texts": [ + { + "role": "主标题", + "box": [ + 0, + 0, + 45, + 20 + ], + "text": "蓝羽毛", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右上说明", + "box": [ + 80, + 22, + 29, + 23 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "编号", + "box": [ + 99, + 44, + 11, + 13 + ], + "text": "01", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "左下信息两列", + "box": [ + 2, + 118, + 39, + 33 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "斜引线", + "box": [ + 80, + 46, + 18, + 12 + ] + }, + { + "role": "底部左短线", + "box": [ + 21, + 163, + 16, + 5 + ] + }, + { + "role": "底部右短线", + "box": [ + 77, + 163, + 18, + 5 + ] + } + ] + }, + { + "name": "满版灰底椭圆与右侧白字", + "images": [ + { + "role": "中央倾斜椭圆图位", + "box": [ + 7, + 13, + 95, + 146 + ], + "seed": [ + 53, + 84 + ] + } + ], + "texts": [ + { + "role": "右侧竖向标题", + "box": [ + 76, + 0, + 31, + 58 + ], + "text": "蓝羽毛", + "direction": "vertical", + "tone": "light" + }, + { + "role": "右下竖向标题", + "box": [ + 77, + 104, + 30, + 45 + ], + "text": "版式", + "direction": "vertical", + "tone": "light" + }, + { + "role": "椭圆左沿弧形微字", + "box": [ + 12, + 21, + 23, + 109 + ], + "text": null, + "direction": "curved", + "tone": "light" + }, + { + "role": "右侧辅助小字", + "box": [ + 78, + 74, + 28, + 15 + ], + "text": null, + "direction": "horizontal", + "tone": "light" + } + ], + "decor": [ + { + "role": "左上方块与短线", + "box": [ + 2, + 7, + 13, + 16 + ] + }, + { + "role": "左下阶梯线组", + "box": [ + 1, + 130, + 31, + 33 + ] + }, + { + "role": "底部细线", + "box": [ + 1, + 165, + 57, + 4 + ] + } + ] + }, + { + "name": "五圆出血与右侧竖排大字", + "images": [ + { + "role": "左上出血圆", + "box": [ + 0, + 0, + 49, + 66 + ], + "seed": [ + 19, + 28 + ] + }, + { + "role": "右上出血圆", + "box": [ + 55, + 0, + 57, + 49 + ], + "seed": [ + 83, + 18 + ] + }, + { + "role": "中部圆", + "box": [ + 45, + 56, + 48, + 45 + ], + "seed": [ + 65, + 75 + ] + }, + { + "role": "左中小圆", + "box": [ + 2, + 74, + 43, + 48 + ], + "seed": [ + 22, + 99 + ] + }, + { + "role": "左下出血圆", + "box": [ + 0, + 130, + 71, + 43 + ], + "seed": [ + 31, + 155 + ] + } + ], + "texts": [ + { + "role": "右侧大标题", + "box": [ + 72, + 71, + 28, + 99 + ], + "text": "蓝羽毛", + "direction": "vertical", + "tone": "dark" + }, + { + "role": "右侧细标题", + "box": [ + 99, + 72, + 12, + 90 + ], + "text": "版式设计 设计灵感", + "direction": "vertical", + "tone": "dark" + } + ], + "decor": [ + { + "role": "中下竖线组", + "box": [ + 47, + 106, + 24, + 43 + ] + } + ] + }, + { + "name": "满高左图与右侧窄栏", + "images": [ + { + "role": "左侧满高图片", + "box": [ + 1, + 1, + 72, + 170 + ], + "seed": [ + 37, + 86 + ] + } + ], + "texts": [ + { + "role": "右侧竖向主标题", + "box": [ + 96, + 28, + 14, + 85 + ], + "text": "蓝羽毛の版式", + "direction": "vertical", + "tone": "dark" + }, + { + "role": "右侧竖向说明", + "box": [ + 77, + 49, + 18, + 49 + ], + "text": "审美提升 设计灵感", + "direction": "vertical", + "tone": "dark" + }, + { + "role": "底部英文标识", + "box": [ + 78, + 162, + 32, + 9 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "右上短竖线", + "box": [ + 89, + 1, + 3, + 38 + ] + }, + { + "role": "右下细长线组", + "box": [ + 80, + 102, + 15, + 58 + ] + }, + { + "role": "右侧斜引线", + "box": [ + 80, + 93, + 13, + 14 + ] + } + ] + }, + { + "name": "同心圆图位与底部年份", + "images": [ + { + "role": "中央圆形主图", + "box": [ + 16, + 8, + 96, + 98 + ], + "seed": [ + 60, + 57 + ] + } + ], + "texts": [ + { + "role": "下沿环形文字", + "box": [ + 13, + 73, + 96, + 44 + ], + "text": null, + "direction": "curved", + "tone": "dark" + }, + { + "role": "年份", + "box": [ + 1, + 129, + 28, + 12 + ], + "text": "2025", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "年份下副标题", + "box": [ + 1, + 140, + 60, + 5 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "底部说明", + "box": [ + 1, + 146, + 109, + 16 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右下品牌", + "box": [ + 58, + 161, + 52, + 9 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "同心环线", + "box": [ + 0, + 0, + 112, + 138 + ] + } + ] + }, + { + "name": "双层满宽图与字距横栏", + "images": [ + { + "role": "中部横向图片", + "box": [ + 2, + 30, + 108, + 38 + ], + "seed": [ + 56, + 49 + ] + }, + { + "role": "下部大图", + "box": [ + 2, + 76, + 108, + 94 + ], + "seed": [ + 56, + 123 + ] + } + ], + "texts": [ + { + "role": "顶部英文刊头", + "box": [ + 0, + 0, + 111, + 14 + ], + "text": "BULUBLUE", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "顶部中文刊头", + "box": [ + 0, + 13, + 111, + 17 + ], + "text": "蓝羽毛设计", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "中央字距标签", + "box": [ + 2, + 68, + 108, + 8 + ], + "text": "DESIGNFOR2026", + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [] + }, + { + "name": "左侧分字标题与右侧长图", + "images": [ + { + "role": "右侧竖长图片", + "box": [ + 38, + 12, + 65, + 121 + ], + "seed": [ + 70.5, + 72.5 + ] + } + ], + "texts": [ + { + "role": "左上大字", + "box": [ + 2, + 13, + 27, + 24 + ], + "text": "版", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "左侧小字组", + "box": [ + 3, + 37, + 29, + 25 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "左中大字", + "box": [ + 2, + 65, + 27, + 22 + ], + "text": "式", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "底部左侧竖字", + "box": [ + 2, + 142, + 15, + 29 + ], + "text": null, + "direction": "vertical", + "tone": "dark" + }, + { + "role": "底部日期标识", + "box": [ + 40, + 136, + 61, + 8 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "底部上横线组", + "box": [ + 40, + 144, + 58, + 7 + ] + }, + { + "role": "底部双线", + "box": [ + 40, + 156, + 62, + 7 + ] + } + ] + }, + { + "name": "半页深底与裁切英文 blue", + "images": [ + { + "role": "下半页深色图片区", + "box": [ + 0, + 81, + 113, + 92 + ], + "seed": [ + 53, + 111 + ] + } + ], + "texts": [ + { + "role": "裁切英文标题", + "box": [ + 0, + 49, + 85, + 32 + ], + "text": "blue", + "direction": "horizontal", + "tone": "muted-dark" + }, + { + "role": "英文上方小标签", + "box": [ + 9, + 44, + 75, + 7 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "深底居中说明", + "box": [ + 24, + 144, + 63, + 14 + ], + "text": null, + "direction": "horizontal", + "tone": "light" + } + ], + "decor": [ + { + "role": "左上角标", + "box": [ + 0, + 4, + 10, + 5 + ] + }, + { + "role": "右上角标", + "box": [ + 103, + 4, + 10, + 5 + ] + } + ] + }, + { + "name": "左上双行标题与右下主图", + "images": [ + { + "role": "右下主图", + "box": [ + 46, + 66, + 64, + 95 + ], + "seed": [ + 78, + 113.5 + ] + } + ], + "texts": [ + { + "role": "第一行标题", + "box": [ + 0, + 4, + 58, + 22 + ], + "text": "蓝羽毛", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "第二行标题", + "box": [ + 0, + 27, + 75, + 22 + ], + "text": "版式灵感", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右上小标签", + "box": [ + 82, + 1, + 13, + 13 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右上信息组", + "box": [ + 81, + 20, + 23, + 17 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右中短标识", + "box": [ + 82, + 55, + 23, + 7 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "左下脚注", + "box": [ + 0, + 158, + 34, + 9 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "左中横线组", + "box": [ + 14, + 89, + 24, + 22 + ] + } + ] + }, + { + "name": "三图模块与左侧分散字框", + "images": [ + { + "role": "右上主图", + "box": [ + 24, + 19, + 88, + 72 + ], + "seed": [ + 63, + 53 + ] + }, + { + "role": "下方左图片", + "box": [ + 24, + 94, + 53, + 38 + ], + "seed": [ + 50.5, + 113 + ] + }, + { + "role": "下方右图片", + "box": [ + 80, + 94, + 32, + 38 + ], + "seed": [ + 96, + 113 + ] + } + ], + "texts": [ + { + "role": "左上大字", + "box": [ + 0, + 0, + 30, + 39 + ], + "text": "版", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "左侧竖向副题", + "box": [ + 4, + 51, + 17, + 70 + ], + "text": "蓝羽毛の设计", + "direction": "vertical", + "tone": "dark" + }, + { + "role": "左下大字", + "box": [ + 0, + 138, + 32, + 33 + ], + "text": "式", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "分格图注", + "box": [ + 24, + 132, + 87, + 5 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "底部说明", + "box": [ + 35, + 157, + 76, + 13 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "顶部短横线组", + "box": [ + 45, + 3, + 55, + 8 + ] + }, + { + "role": "底部中横线组", + "box": [ + 35, + 141, + 68, + 16 + ] + }, + { + "role": "左下水平分隔", + "box": [ + 0, + 146, + 31, + 2 + ] + } + ] + }, + { + "name": "横题与右侧出血扁椭圆", + "images": [ + { + "role": "右侧扁椭圆主图", + "box": [ + 4, + 38, + 109, + 116 + ], + "seed": [ + 80, + 95 + ] + } + ], + "texts": [ + { + "role": "顶部左标题", + "box": [ + 4, + 6, + 39, + 22 + ], + "text": "版式", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "顶部右标题", + "box": [ + 70, + 6, + 41, + 22 + ], + "text": "灵感", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "标题中央微字", + "box": [ + 44, + 12, + 25, + 9 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "左下分行说明", + "box": [ + 5, + 100, + 32, + 57 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "底部信息", + "box": [ + 4, + 162, + 103, + 9 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [] + }, + { + "name": "大矩形与小方图及居中横题", + "images": [ + { + "role": "左上主图", + "box": [ + 8, + 9, + 72, + 66 + ], + "seed": [ + 44, + 42 + ] + }, + { + "role": "右下小图", + "box": [ + 57, + 92, + 46, + 41 + ], + "seed": [ + 80, + 112.5 + ] + } + ], + "texts": [ + { + "role": "中部横向主标题", + "box": [ + 6, + 77, + 104, + 12 + ], + "text": "蓝羽毛 版式灵感设计分享", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "中部辅助标签", + "box": [ + 9, + 91, + 44, + 8 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "底部两处标识", + "box": [ + 9, + 145, + 82, + 11 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "右上细线阶梯", + "box": [ + 81, + 8, + 22, + 16 + ] + } + ] + }, + { + "name": "英文双行刊头与四分之一圆图", + "images": [ + { + "role": "上部弧面主图", + "box": [ + 1, + 38, + 108, + 71 + ], + "seed": [ + 60, + 79 + ] + }, + { + "role": "下方左图片", + "box": [ + 1, + 110, + 68, + 53 + ], + "seed": [ + 35, + 136.5 + ] + }, + { + "role": "下方右图片", + "box": [ + 71, + 110, + 38, + 53 + ], + "seed": [ + 90, + 136.5 + ] + } + ], + "texts": [ + { + "role": "英文第一行", + "box": [ + 3, + 5, + 78, + 20 + ], + "text": "bulublue", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "英文第二行", + "box": [ + 3, + 24, + 63, + 19 + ], + "text": "design", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右上说明", + "box": [ + 82, + 4, + 26, + 19 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "底部品牌与角标", + "box": [ + 1, + 164, + 109, + 8 + ], + "text": "BULUBLUE DESIGN", + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [] + }, + { + "name": "上下灰阶色带与底部白区", + "images": [ + { + "role": "上部浅色图片区", + "box": [ + 0, + 0, + 113, + 57 + ], + "seed": [ + 42, + 25 + ] + }, + { + "role": "中部深色图片区", + "box": [ + 0, + 57, + 113, + 54 + ], + "seed": [ + 42, + 83 + ] + } + ], + "texts": [ + { + "role": "右上竖字", + "box": [ + 82, + 14, + 10, + 25 + ], + "text": "高级版式", + "direction": "vertical", + "tone": "dark" + }, + { + "role": "底部左标题", + "box": [ + 7, + 119, + 36, + 8 + ], + "text": "蓝羽毛版式", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "底部右说明", + "box": [ + 49, + 130, + 49, + 23 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "底部右脚注", + "box": [ + 49, + 155, + 51, + 8 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [] + }, + { + "name": "英文刊头与圆形叠标及窄栏", + "images": [ + { + "role": "左下主图", + "box": [ + 2, + 66, + 77, + 105 + ], + "seed": [ + 40, + 110 + ] + }, + { + "role": "左中叠加圆形", + "box": [ + 2, + 54, + 26, + 25 + ], + "seed": [ + 14, + 64 + ] + } + ], + "texts": [ + { + "role": "左上英文第一行", + "box": [ + 3, + 5, + 76, + 15 + ], + "text": "Bulublue", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "左上英文第二行", + "box": [ + 3, + 18, + 58, + 16 + ], + "text": "Design", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "中部中文横题", + "box": [ + 49, + 50, + 62, + 16 + ], + "text": "高级感版式.", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右侧窄栏正文", + "box": [ + 82, + 68, + 29, + 54 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "刊头右侧双线", + "box": [ + 61, + 27, + 50, + 7 + ] + }, + { + "role": "右栏底线", + "box": [ + 81, + 121, + 30, + 2 + ] + }, + { + "role": "底部横向贴条", + "box": [ + 58, + 167, + 54, + 6 + ] + } + ] + }, + { + "name": "上大图与下方英文双行", + "images": [ + { + "role": "上方主图", + "box": [ + 19, + 4, + 91, + 92 + ], + "seed": [ + 64.5, + 50 + ] + } + ], + "texts": [ + { + "role": "左上微标识", + "box": [ + 0, + 4, + 8, + 6 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "下方英文第一行", + "box": [ + 1, + 105, + 91, + 20 + ], + "text": "Bulublue", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "下方英文第二行", + "box": [ + 1, + 122, + 78, + 20 + ], + "text": "Design", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "底部短信息组", + "box": [ + 2, + 155, + 102, + 16 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "左侧竖向刻度", + "box": [ + 0, + 65, + 6, + 29 + ] + }, + { + "role": "右下椭圆线组", + "box": [ + 76, + 128, + 34, + 21 + ] + } + ] + }, + { + "name": "四角大字与中央双圆竖题", + "images": [ + { + "role": "顶部出血椭圆", + "box": [ + 0, + 0, + 113, + 72 + ], + "seed": [ + 53, + 21 + ] + }, + { + "role": "中央圆形图位", + "box": [ + 26, + 48, + 59, + 62 + ], + "seed": [ + 55, + 77 + ] + }, + { + "role": "底部小椭圆", + "box": [ + 43, + 137, + 26, + 22 + ], + "seed": [ + 56, + 149 + ] + } + ], + "texts": [ + { + "role": "左上大字", + "box": [ + 1, + 1, + 34, + 38 + ], + "text": "高", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右上大字", + "box": [ + 76, + 0, + 35, + 39 + ], + "text": "级", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "左下大字", + "box": [ + 1, + 132, + 35, + 39 + ], + "text": "排", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右下大字", + "box": [ + 77, + 133, + 35, + 39 + ], + "text": "版", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "中央竖排标题", + "box": [ + 49, + 37, + 19, + 94 + ], + "text": "蓝羽毛の版式灵感", + "direction": "vertical", + "tone": "dark" + }, + { + "role": "右侧竖向微字", + "box": [ + 103, + 50, + 9, + 57 + ], + "text": null, + "direction": "vertical", + "tone": "dark" + } + ], + "decor": [ + { + "role": "中部左线组", + "box": [ + 0, + 105, + 47, + 29 + ] + }, + { + "role": "中部右线组", + "box": [ + 68, + 112, + 39, + 22 + ] + }, + { + "role": "底部短线", + "box": [ + 39, + 157, + 31, + 6 + ] + } + ] + }, + { + "name": "右上大弧面与左下圆形标题", + "images": [ + { + "role": "右上出血椭圆", + "box": [ + 16, + 0, + 97, + 127 + ], + "seed": [ + 76, + 53 + ] + }, + { + "role": "左下叠加圆", + "box": [ + 7, + 91, + 64, + 62 + ], + "seed": [ + 37, + 122 + ] + } + ], + "texts": [ + { + "role": "圆中第一行", + "box": [ + 20, + 102, + 40, + 18 + ], + "text": "高级", + "direction": "horizontal", + "tone": "light" + }, + { + "role": "圆中第二行", + "box": [ + 20, + 123, + 40, + 18 + ], + "text": "版式", + "direction": "horizontal", + "tone": "light" + }, + { + "role": "右下短注", + "box": [ + 72, + 158, + 36, + 9 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "左上竖线", + "box": [ + 7, + 18, + 5, + 62 + ] + }, + { + "role": "左下竖线", + "box": [ + 29, + 151, + 3, + 22 + ] + } + ] + }, + { + "name": "右侧旋转英文与节点方图", + "images": [ + { + "role": "左上主图", + "box": [ + 1, + 1, + 78, + 104 + ], + "seed": [ + 40, + 53 + ] + }, + { + "role": "底部灰色信息区", + "box": [ + 0, + 136, + 113, + 37 + ], + "seed": [ + 40, + 150 + ] + } + ], + "texts": [ + { + "role": "右侧旋转英文", + "box": [ + 85, + 2, + 27, + 109 + ], + "text": "Bulublue", + "direction": "rotated", + "tone": "dark" + }, + { + "role": "左日期", + "box": [ + 1, + 108, + 14, + 11 + ], + "text": "25", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右日期", + "box": [ + 96, + 113, + 15, + 11 + ], + "text": "03", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右年份", + "box": [ + 85, + 124, + 26, + 11 + ], + "text": "2025", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "中下说明", + "box": [ + 2, + 128, + 78, + 7 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "底部两块微字", + "box": [ + 4, + 144, + 94, + 24 + ], + "text": null, + "direction": "horizontal", + "tone": "muted-light" + } + ], + "decor": [ + { + "role": "上方圆节点", + "box": [ + 25, + 9, + 12, + 12 + ] + }, + { + "role": "右上圆节点", + "box": [ + 73, + 29, + 14, + 14 + ] + }, + { + "role": "下方圆节点", + "box": [ + 46, + 99, + 12, + 12 + ] + }, + { + "role": "右下圆节点", + "box": [ + 97, + 99, + 11, + 11 + ] + }, + { + "role": "日期间椭圆线", + "box": [ + 17, + 112, + 77, + 6 + ] + } + ] + }, + { + "name": "三段斜切背景与右侧白字", + "images": [ + { + "role": "顶部浅色斜切图", + "box": [ + 0, + 0, + 113, + 68 + ], + "seed": [ + 35, + 21 + ] + }, + { + "role": "中部深色斜带图", + "box": [ + 0, + 45, + 113, + 93 + ], + "seed": [ + 50, + 96 + ] + }, + { + "role": "底部灰色斜切图", + "box": [ + 0, + 111, + 113, + 62 + ], + "seed": [ + 40, + 147 + ] + } + ], + "texts": [ + { + "role": "右侧竖排主标题", + "box": [ + 82, + 0, + 29, + 146 + ], + "text": "蓝羽毛版式", + "direction": "vertical", + "tone": "light" + }, + { + "role": "左上说明", + "box": [ + 3, + 35, + 43, + 18 + ], + "text": null, + "direction": "horizontal", + "tone": "light" + }, + { + "role": "左中说明", + "box": [ + 2, + 74, + 49, + 24 + ], + "text": null, + "direction": "horizontal", + "tone": "light" + }, + { + "role": "左下说明", + "box": [ + 3, + 107, + 52, + 21 + ], + "text": null, + "direction": "horizontal", + "tone": "light" + }, + { + "role": "右下日期", + "box": [ + 74, + 143, + 36, + 13 + ], + "text": null, + "direction": "horizontal", + "tone": "light" + }, + { + "role": "底部说明", + "box": [ + 2, + 154, + 95, + 17 + ], + "text": null, + "direction": "horizontal", + "tone": "muted-light" + } + ], + "decor": [] + }, + { + "name": "上方方图与中部大写英文", + "images": [ + { + "role": "左上方图", + "box": [ + 1, + 1, + 78, + 71 + ], + "seed": [ + 40, + 36.5 + ] + } + ], + "texts": [ + { + "role": "右上标识", + "box": [ + 79, + 0, + 26, + 8 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "主图下方左右标签", + "box": [ + 1, + 72, + 78, + 7 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "中部大英文", + "box": [ + 0, + 78, + 113, + 25 + ], + "text": "BULUBLUE", + "direction": "horizontal", + "tone": "muted-dark" + }, + { + "role": "英文下方四组微字", + "box": [ + 0, + 104, + 111, + 21 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "底部三处标签", + "box": [ + 0, + 165, + 105, + 6 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [] + }, + { + "name": "斜排中文与倾斜装饰线框", + "images": [ + { + "role": "中央竖向主图", + "box": [ + 19, + 36, + 72, + 100 + ], + "seed": [ + 55, + 84 + ] + } + ], + "texts": [ + { + "role": "上方斜排标题", + "box": [ + 3, + 0, + 79, + 31 + ], + "text": "蓝羽毛版式", + "direction": "angled", + "tone": "dark" + }, + { + "role": "标题下方斜微字", + "box": [ + 34, + 27, + 26, + 10 + ], + "text": null, + "direction": "angled", + "tone": "dark" + } + ], + "decor": [ + { + "role": "左侧斜长线", + "box": [ + 2, + 50, + 14, + 62 + ] + }, + { + "role": "右侧斜长线", + "box": [ + 94, + 13, + 15, + 121 + ] + }, + { + "role": "左下斜向线组", + "box": [ + 13, + 136, + 57, + 24 + ] + }, + { + "role": "右下斜贴条组", + "box": [ + 64, + 149, + 42, + 23 + ] + }, + { + "role": "底边线", + "box": [ + 1, + 168, + 34, + 3 + ] + } + ] + }, + { + "name": "左侧竖题与右下方形主图", + "images": [ + { + "role": "右下主图", + "box": [ + 14, + 101, + 98, + 69 + ], + "seed": [ + 63, + 135.5 + ] + } + ], + "texts": [ + { + "role": "左侧竖题", + "box": [ + 6, + 36, + 11, + 49 + ], + "text": "高级·版式", + "direction": "vertical", + "tone": "dark" + }, + { + "role": "左侧辅助竖字", + "box": [ + 20, + 38, + 7, + 24 + ], + "text": null, + "direction": "vertical", + "tone": "dark" + }, + { + "role": "右中说明", + "box": [ + 89, + 42, + 22, + 51 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "左下边缘说明", + "box": [ + 5, + 132, + 27, + 31 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "左上阶梯横线", + "box": [ + 4, + 1, + 39, + 17 + ] + } + ] + }, + { + "name": "三行英文与曲线指引小图", + "images": [ + { + "role": "右下方形图片", + "box": [ + 66, + 118, + 44, + 51 + ], + "seed": [ + 88, + 143.5 + ] + } + ], + "texts": [ + { + "role": "第一行英文", + "box": [ + 0, + 0, + 81, + 18 + ], + "text": "Format 58", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "第二行英文", + "box": [ + 0, + 23, + 56, + 18 + ], + "text": "Bulubl", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "第三行英文", + "box": [ + 0, + 41, + 68, + 19 + ], + "text": "Bulublue", + "direction": "horizontal", + "tone": "dark" + }, + { + "role": "右侧竖排标题", + "box": [ + 95, + 68, + 15, + 46 + ], + "text": "高级版式", + "direction": "vertical", + "tone": "dark" + }, + { + "role": "左下说明", + "box": [ + 4, + 140, + 48, + 29 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "第二行下划线", + "box": [ + 0, + 41, + 47, + 1 + ] + }, + { + "role": "第三行下划线", + "box": [ + 0, + 58, + 67, + 2 + ] + }, + { + "role": "中间分隔线", + "box": [ + 0, + 60, + 112, + 3 + ] + }, + { + "role": "中央自由曲线", + "box": [ + 5, + 48, + 86, + 87 + ] + } + ] + }, + { + "name": "对角双区与斜向文字带", + "images": [ + { + "role": "上方三角出血图", + "box": [ + 0, + 0, + 113, + 89 + ], + "seed": [ + 51, + 42 + ] + }, + { + "role": "下方斜切图", + "box": [ + 0, + 84, + 113, + 77 + ], + "seed": [ + 58, + 121 + ] + } + ], + "texts": [ + { + "role": "左侧白色竖题", + "box": [ + 6, + 6, + 12, + 87 + ], + "text": "高级の版式", + "direction": "vertical", + "tone": "light" + }, + { + "role": "中部斜向文字", + "box": [ + 0, + 77, + 112, + 37 + ], + "text": "蓝羽毛·版式", + "direction": "angled", + "tone": "dark" + }, + { + "role": "底部说明", + "box": [ + 0, + 157, + 112, + 16 + ], + "text": null, + "direction": "horizontal", + "tone": "dark" + } + ], + "decor": [ + { + "role": "顶部右阶梯横线", + "box": [ + 61, + 0, + 48, + 20 + ] + }, + { + "role": "中部斜向浅带", + "box": [ + 0, + 72, + 113, + 40 + ] + }, + { + "role": "左下阶梯横线", + "box": [ + 0, + 145, + 43, + 15 + ] + } + ] + } +] diff --git a/apps/wiki/src/content/layouts/reference/group-text.ts b/apps/wiki/src/content/layouts/reference/group-text.ts new file mode 100644 index 0000000..ce15ceb --- /dev/null +++ b/apps/wiki/src/content/layouts/reference/group-text.ts @@ -0,0 +1,18 @@ +export type Box=[number,number,number,number]; +export type TextRegion={box:Box;direction:string}; +/** Associate residual glyphs with an existing semantic word/paragraph, never create a second word ID. */ +export function textMergeTarget(fragment:Box,regions:TextRegion[]):number{ + const[x,y,w,h]=fragment;let result=-1,best=Infinity; + for(const[index,r]of regions.entries()){ + const[a,b,c,d]=r.box,vertical=r.direction==='vertical'; + const gapX=Math.max(a-x-w,x-a-c,0),gapY=Math.max(b-y-h,y-b-d,0); + const overlapX=Math.max(0,Math.min(x+w,a+c)-Math.max(x,a)),overlapY=Math.max(0,Math.min(y+h,b+d)-Math.max(y,b)); + const sameBaseline=overlapY/Math.max(1,Math.min(h,d))>=.55&&gapX<=Math.max(3,Math.min(7,d*.4)); + const sameColumn=overlapX/Math.max(1,Math.min(w,c))>=.55&&gapY<=Math.max(2,Math.min(4,vertical?c*.3:2)); + if(!(sameBaseline||sameColumn))continue; + // Nearby small footer blocks remain independent when the fragment has no baseline/column affinity. + const score=gapX+gapY+(vertical?(1-overlapX/Math.max(1,Math.min(w,c))):(1-overlapY/Math.max(1,Math.min(h,d)))); + if(score{try{const entry=await getEntry(String(params?.id||''));if(!entry)return {notFound:true};if(String(query.agent_mode||'').toLowerCase()==='true'){res.setHeader('Content-Type','text/plain; charset=utf-8');res.setHeader('Cache-Control','no-cache');res.end(req.method==='HEAD'?undefined:entryText(entry));return {props:{}};}return {props:{entry,background:(await exploreFeed()).entries}};}catch{res.statusCode=503;res.setHeader('Retry-After','10');res.end('内容暂时无法读取,请稍后重试');return {props:{}};}}; +export const getServerSideProps:GetServerSideProps=async({params,query,res,req})=>{if(legacyLayoutIds.includes(String(params?.id)))return {redirect:{destination:guidanceUrl('premium-layout/router'),permanent:false}};try{const entry=await getEntry(String(params?.id||''));if(!entry)return {notFound:true};if(String(query.agent_mode||'').toLowerCase()==='true'){res.setHeader('Content-Type','text/plain; charset=utf-8');res.setHeader('Cache-Control','no-cache');res.end(req.method==='HEAD'?undefined:entryText(entry));return {props:{}};}return {props:{entry,background:(await exploreFeed()).entries}};}catch{res.statusCode=503;res.setHeader('Retry-After','10');res.end('内容暂时无法读取,请稍后重试');return {props:{}};}}; diff --git a/apps/wiki/tests/explore.test.ts b/apps/wiki/tests/explore.test.ts index 29230f9..e53eb68 100644 --- a/apps/wiki/tests/explore.test.ts +++ b/apps/wiki/tests/explore.test.ts @@ -5,7 +5,7 @@ import {pageId,previewUrl} from '../src/content/page-links'; import {guidanceDocuments} from '../src/content/skills/guidance'; import {getServerSideProps} from '../src/pages/explore/[id]'; test('every public document has a distinct persisted ID and canonical entry',async()=>{assert.equal(new Set(staticEntries.map(e=>e.id)).size,staticEntries.length);for(const e of staticEntries){assert.match(e.id,/^[a-f0-9]{24}$/);assert.equal((await getEntry(e.id))?.title,e.title);}for(const doc of guidanceDocuments)assert.ok(pageId('guidance:'+doc.path));assert.equal(await getEntry('unknown'),null);}); -test('agent_mode on the canonical URL emits text with media links and no HTML',async()=>{const entry=staticEntries.find(e=>e.media.length)!;let body='';const headers:Record={};const response={setHeader:(k:string,v:string)=>headers[k]=v,end:(value:string)=>{body=value}};await getServerSideProps({params:{id:entry.id},query:{agent_mode:'True'},res:response,req:{method:'GET'}} as never);assert.match(headers['Content-Type'],/text\/plain/);assert.ok(body.includes(entry.title));assert.ok(body.includes(entry.media[0].url));assert.ok(!body.includes('{const entry=staticEntries.find(e=>e.media.length)!;let body='';const headers:Record={};const response={setHeader:(k:string,v:string)=>headers[k]=v,end:(value:string)=>{body=value}};await getServerSideProps({params:{id:entry.id},query:{agent_mode:'True'},res:response,req:{method:'GET'}} as never);assert.match(headers['Content-Type'],/text\/plain/);assert.ok(body.includes(entry.title));assert.ok(body.includes(entry.media[0].url));assert.ok(body.startsWith('# '+entry.title));assert.ok(!body.includes('!['));assert.equal(body,entryText((await getEntry(entry.id))!));}); test('preview URLs always use bounded image endpoints',()=>{const url=new URL(previewUrl('/api/media/id?variant=poster',480),'http://test');assert.equal(url.pathname,'/api/preview');assert.equal(url.searchParams.get('source'),'/api/media/id?variant=poster');assert.equal(url.searchParams.get('width'),'480');}); test('independent notes expose their own description, tags and complete image counts',async()=>{ @@ -17,14 +17,14 @@ test('independent notes expose their own description, tags and complete image co }); test('agent text preserves tutorial HTML and TSX code without returning an HTML page',async()=>{ - const entry=(await getEntry(pageId('guidance:premium-layout/offset-panels')))!; + const entry=(await getEntry(pageId('guidance:premium-layout/ref-01')))!; let body='';const headers:Record={}; const response={setHeader:(k:string,v:string)=>headers[k]=v,end:(value:string)=>{body=value}}; await getServerSideProps({params:{id:entry.id},query:{agent_mode:'True'},res:response,req:{method:'GET'}} as never); assert.match(headers['Content-Type'],/text\/plain/); assert.ok(body.startsWith('# '+entry.title)); assert.match(body,/```\n\n/); - assert.ok(body.includes('export default function LayoutPoster')); - assert.ok(body.includes('app/designs/offset-panels/page.tsx')); + assert.ok(body.includes('export default function Example')); + assert.ok(body.includes('app/designs/ref-01/page.tsx')); assert.equal(body,entryText(entry)); }); diff --git a/apps/wiki/tests/layout-reference.test.tsx b/apps/wiki/tests/layout-reference.test.tsx new file mode 100644 index 0000000..2450ab2 --- /dev/null +++ b/apps/wiki/tests/layout-reference.test.tsx @@ -0,0 +1,47 @@ +import React from 'react'; +import {test} from 'node:test'; +import assert from 'node:assert/strict'; +import {readFile} from 'node:fs/promises'; +import {createHash} from 'node:crypto'; +import path from 'node:path'; +import sharp from 'sharp'; +import {renderToStaticMarkup} from 'react-dom/server'; +import {transformSync} from 'esbuild'; +import manifest from '../src/content/layouts/reference/manifest.json'; +import ReferenceLayout,{layoutIds,validateReplacements} from '../src/content/layouts/reference/ReferenceLayout'; +import {textMergeTarget} from '../src/content/layouts/reference/group-text'; +import {layoutDocuments,htmlExample,reactExample,nextExample,legacyLayoutIds} from '../src/content/layouts/documents'; +import {getServerSideProps} from '../src/pages/explore/[id]'; +const publicRoot=path.resolve(import.meta.dirname,'../public'); +const asset=(url:string)=>path.join(publicRoot,url); +test('27 source layouts have stable row-major IDs, 5/5/5/6/6 positions and scoped components',async()=>{ + assert.deepEqual(manifest.map(l=>l.id),[...layoutIds]);assert.equal(layoutDocuments.length,28); + assert.deepEqual([1,2,3,4,5].map(row=>manifest.filter(l=>l.source.row===row).length),[5,5,5,6,6]); + const hash=createHash('sha256').update(await readFile(asset('/layout-reference/source.png'))).digest('hex'); + for(const l of manifest){assert.equal(l.source.sha256,hash);assert.equal(new Set(l.elements.map(e=>e.id)).size,l.elements.length);for(const e of l.elements){assert.ok(e.asset.startsWith('/layout-reference/'+l.id+'/'));assert.ok(e.pixels>0);assert.equal(e.id[0],{text:'T',image:'I',decoration:'D'}[e.kind]);if(e.reading==='unreadable')assert.equal(e.text,null)}} +}); +test('all 27 extracted layer composites equal their original source crops at every RGB pixel',async()=>{ + for(const l of manifest){ + const result=await sharp(asset(l.background)).composite(l.elements.map(e=>({input:asset(e.asset),left:e.box[0],top:e.box[1]}))).removeAlpha().raw().toBuffer(); + const reference=await sharp(asset(l.reference)).removeAlpha().raw().toBuffer();assert.ok(result.equals(reference),l.id+' physical layer composite must match'); + } +}); +test('a residual end glyph stays in T01 instead of creating a second word; other columns stay independent',()=>{ + assert.equal(textMergeTarget([38,24,6,6],[{box:[2,20,38,15],direction:'horizontal'}]),0); + assert.equal(textMergeTarget([90,24,6,6],[{box:[2,20,38,15],direction:'horizontal'}]),-1); + const first=manifest[0];assert.deepEqual(first.elements.filter(e=>e.kind==='text').map(e=>e.id),['T01','T02']); + assert.ok(first.elements.find(e=>e.id==='T01')!.box[0]+first.elements.find(e=>e.id==='T01')!.box[2]>=44); + const date=manifest.find(l=>l.id==='ref-21')!.elements.find(e=>e.id==='T03')!;assert.equal(date.text,'03');assert.equal(date.kind,'text'); + const grayWord=manifest.find(l=>l.id==='ref-23')!.elements.find(e=>e.text==='BULUBLUE')!;assert.equal(grayWord.kind,'text'); +}); +test('component replacement rejects foreign IDs and wrong kinds; default React renders exact source assets',()=>{ + assert.throws(()=>validateReplacements('ref-01',{text:{'ref-02/T01':'wrong'}})); + assert.throws(()=>validateReplacements('ref-01',{text:{'ref-01/I01':'wrong'}})); + assert.throws(()=>validateReplacements('missing',{})); + for(const id of layoutIds){const html=renderToStaticMarkup();assert.ok(html.includes('data-layout-id="'+id+'"'));assert.equal((html.match(/data-component=/g)||[]).length,manifest.find(l=>l.id===id)!.elements.length)} + const edited=renderToStaticMarkup();assert.ok(edited.includes('我的品牌'));assert.ok(edited.includes('mask-image'));assert.ok(edited.includes('T01-underlay.png')); +}); +test('HTML, React and Next.js examples bind each source ID and retired approximate posts redirect to Router',async()=>{ + for(const l of manifest){assert.ok(htmlExample(l.id).includes("const id='"+l.id+"'"));transformSync(reactExample(l.id),{loader:'tsx'});transformSync(nextExample(l.id),{loader:'tsx'});const html=await readFile(asset('/layout-reference/'+l.id+'/index.html'),'utf8');assert.ok(html.includes('data-toggle="text"'));assert.ok(html.includes('data-toggle="image"'));assert.ok(html.includes('manifest='+JSON.stringify(l).replaceAll('<','\\u003c')))} + for(const id of legacyLayoutIds){const response=await getServerSideProps({params:{id},query:{},res:{},req:{}} as never);assert.ok('redirect' in response)} +}); diff --git a/docs/premium-layouts.md b/docs/premium-layouts.md index 5189a27..2246cf0 100644 --- a/docs/premium-layouts.md +++ b/docs/premium-layouts.md @@ -1,42 +1,39 @@ -# 高级感排版文档组 +# 27 张原图对应排版 -新增 13 篇指导 post:一篇设计 Router 与 12 篇构图配方。通过已有指导文档注册表进入首页、分类与独立详情;每篇共用相同 ID 的网页和 `?agent_mode=True` 纯文本,不另外复制数据库 post。 +本组发布 27 张原图一一对应的设计 post,加 1 篇 Router。替换此前的 12 套概括构图;原 Router ID 保持稳定,旧 12 篇 post ID 跳转 Router,不擅自映射到一张近似设计。 -## 文件与目的 +## 原图与编号 -- `apps/wiki/src/content/layouts/recipes.json`:12 套构图的适用条件、几何参数、步骤、独立 CSS/HTML、验收条件及封面结构图形。 -- `apps/wiki/src/content/layouts/documents.ts`:Router、输入/输出协议、调度选择器、字体与图片策略、阅读模式、公共 CSS,以及逐篇生成完整 HTML、支持属性的 React TSX 与 Next.js App Router 接入代码。 -- `apps/wiki/src/content/skills/guidance.ts`:将 13 篇内容接入既有全局文档注册表,并排在首页前部;沿用分类、正文与反向引用机制。 -- `apps/wiki/src/content/page-ids.json`:为 13 篇文档持久保存独立 ID,标题与排序变化不改变地址。 -- `apps/wiki/scripts/generate-layout-recipes.ts`:重新生成独立 HTML 演示和 PNG 结构封面,无第三方素材和浏览器依赖。 -- `apps/wiki/public/layout-recipes/router.png`:12 套构图的总览封面。 -- `apps/wiki/scripts/smoke.mjs`:以响应类型与 Markdown 开头检查纯文本,允许教程代码块合法包含 HTML。 -- `apps/wiki/tests/explore.test.ts`:新增回归检查,确保 agent 模式原样保留 HTML 与 TSX 代码示例。 -- `docs/premium-layouts.md`:内容入口、文件职责、重建与验证说明(本文)。 +用户提供的 736×980 拼图中,排除左侧“高级感排版”说明栏;从上到下、每行从左到右编号 ref-01…ref-27。前 3 行各 5 张,后 2 行各 6 张,左下两张计入。`public/layout-reference/numbered-source.png` 给出准确位置;`index.json` 为机器入口。 -以下每个文件基名各对应 `.html` 与 `.png` 两个文件,全部位于 `apps/wiki/public/layout-recipes/`。HTML 为实际可运行示例;PNG 是独立绘制的结构示意,明确标注并非代码截图。 +## 识别流程 -| 文件基名 | 构图与目的 | -| --- | --- | -| `offset-panels` | 错位双矩形:两张主图的主次与边缘对齐 | -| `vertical-rail` | 窄轨竖排:短中文标题与主图并列 | -| `monumental-type` | 巨字与裁切:通过装饰英文建立宣言重心 | -| `orbital-rings` | 同心圆与轨道:表达周期与时间 | -| `organic-ellipse` | 有机椭圆与弧面:柔和品牌的出血曲线 | -| `modular-grid` | 模块网格与索引:六项内容的秩序 | -| `editorial-serif` | 衬线刊头与杂志栏:文化导读的刊头与边栏 | -| `horizontal-band` | 横向色带与断层:章节之间的视觉停顿 | -| `diagonal-cards` | 轻斜卡片与拼贴:实验记录的纸张层次 | -| `annotation-lines` | 细线标注与技术图录:对象与短标注的对应关系 | -| `split-contrast` | 双区对照与大留白:上下两种观点的对照 | -| `type-frame` | 四角字框与中心场:语义标题与装饰副本分离 | +`segment-layout-reference.ts` 从外沿采样灰底,以 RGB 最大通道差 >19 建前景 mask,四邻域连通域按宽高范围筛选,自动检测 27 张。按 y 聚行、按 x 排序;没有手写外裁片表。 + +`recognize-layout-text.swift` 使用 macOS Vision 本地 OCR,证据保存在 `reference/ocr-evidence.json`。逐张人工复核的文字、图位、装饰区域记录在 `annotations.json`。图位依据局部颜色种子建立掩膜;文字按亮暗与背景颜色分离,保留未知微字,不把 OCR 候选当作确认内容。 + +`group-text.ts` 将与既有文字块在基线、间距和字高上相连的残余字形合并。ref-01 的末尾字符保持在 T01,不能再产生 T03;ref-21 的 03 日期与旋转英文保持独立。 + +T=文字,I=图片占位/色块,D=装饰,背景另存。每个构件有类型、角色、局部 box、原字形资产;文字可读则有 text,未知则为 null。27 张的 source SHA 与裁片绝对坐标持久保存。不同设计使用完整键,例如 ref-01/T01,运行时拒绝跨设计与跨类型替换。 + +## 输出和使用 + +每张 `public/layout-reference/ref-NN/` 包含原裁片、标注图、三类掩膜图、分离构件 PNG、图位替换 mask、文字下的近似填补层、背景、重组 PNG、构件 JSON 与交互检查器。`ReferenceLayout.tsx` 默认使用原始分类资产重组;替换文字时改为 DOM,替换图位时使用该构件的遮罩,坐标保持对应。原字形模式为像素保真;替换模式并非像素保真,不声称恢复了原字体。 + +`documents.ts` 为每张生成一篇独立教学 post:原图位置、构件表、文字方向、制作步骤、HTML、React、Next.js 和验收规则。Router 提供完整 27 项索引、识别方法、类型定义和严格调用协议。`package-reference-layouts.ts` 将 28 篇 Markdown、React/Next.js 代码和资产打包为 ZIP。 + +原图只有低分辨率拼图,无法恢复细字或确定字体。保留原字形不等于 OCR 全部正确;自动像素比较只验证重组一致,语义标注仍需人工查看。参考中灰绿区域为占位/色块,无可辨认真实照片。网页长文另提供正常可读正文。 ## 重建与验证 -从 `apps/wiki` 目录执行 `node --import tsx scripts/generate-layout-recipes.ts`。既有文档与 explore 测试覆盖所有新增 ID、全局引用、Markdown 与资源计数。使用 tsc 检查内容生成器;用 esbuild 逐篇编译文档中的 React、Next.js 与 CSS,并通过 React 服务端渲染验证标题与说明属性。 +从 apps/wiki 依次执行: -只在生产服务器验收页面,不启动本地网页预览。推送后等待 ces-control CI 完成生产构建和集成检查,再检查实际首页、排版分类、Router、子文档、纯文本和独立 HTML。 +``` +node --import tsx scripts/segment-layout-reference.ts +node --import tsx scripts/build-reference-layout-demos.ts +node --import tsx scripts/package-reference-layouts.ts +``` -## 边界 +可选重新运行 Vision OCR:先将每张裁片等比放大,再运行 Swift 脚本,输出新证据,人工复核后更新 annotations;不可直接覆盖已核对语义。 -这是一组可复用的设计教学文档,不是将参考图逐格临摹成商业模板。示例使用系统字体与占位色块;真实标题、字体、照片和移动端阅读模式必须按最终内容重新检查。文档中的 Next.js 示例面向 App Router,不改变本站已有路由架构。 +`tests/layout-reference.test.tsx` 校验 27 个 ID 与行列、源 SHA、类型与资产归属、全部独立图层的真实合成像素、同词合并、日期独立、跨版面替换拒绝、React 渲染、三类代码示例与旧 post 跳转。生产构建和集成检查通过后,在指定服务器验收;不启动本地页面预览。