text op• 資料種類:text → table
• 呼叫: import fullseye as fs; fs.ledger.measure_text(text, font_size=14, font_path=None, max_width=None, min_font_size=9, line_spacing=1.15, wrap=True, bold=False, italic=False)(要直接呼叫實作,import annotate; annotate.measure_text(text, font_size=14, font_path=None, max_width=None, min_font_size=9, line_spacing=1.15, wrap=True, bold=False, italic=False);從台帳取用則 opsannotate.get("measure_text"))
在畫之前先測量文字。放不下就折行或縮小,再不行就擲出例外。
text : str
要量測的字串(以 \n 換行)。
font_size : int
期望的字級。若放不進 max_width,則每次縮小 1pt。
font_path : str or None
明確指定後,跨機器也能得到相同結果。None 時依固定順序
搜尋 FONT_CANDIDATES。
max_width : int or None
想要放入的寬度[px]。None 時既不縮小也不換行。
min_font_size : int
縮到這裡仍放不進則 ValueError(不會悄悄截斷)。
line_spacing : float
行距係數。
bold, italic : bool or int
合成的粗體、斜體(_bold_px / _italic_tile)。並非真正的
Bold / Italic 字體,所以字形不同 —— 需要真正的字體時,
請把該字體的檔案傳給 font_path。給 bold 傳整數,
可直接指定疊印次數。粗細與傾斜所增加的部分計入 width,
因此底板和表格的欄寬會相應變寬(疊印只在橫向變粗,所以
height 不變)。
wrap : bool
True(預設)時在 max_width 處換行。False 時不換行,
而是不增加行數、縮小字型來放入(用於像網格標籤那樣,變成 2 行
就會破壞版面的地方 —— 與 exhibit_tile._fit_label 同樣的做法)。
無論哪種,縮到 min_font_size 仍放不進就拋出例外。
\n 換行與 max_width 有無、wrap 取值如何無關,一律生效
(不會發生「不給寬度就壓成 1 行」的事故)。
dict
{"lines", "font", "font_size", "width", "height", "line_height"}。
width/height 為實測值[px]。
ValueError
max_width 非正 / 縮到 min_font_size 仍放不進 1 行。
• dataset_conventions — 訓練資料集規範知識 —— COCO / YOLO / VOC 及外觀檢測中的陷阱
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• 演算法的正典(作者、年份)與用途見上面的族使用指南。
• annotate_gallery — py -3.11 examples/annotate_gallery.py
• annotate_paper_tour — py -3.11 examples/annotate_paper_tour.py
• poc_diabolo_model_and_vision — py -3.11 examples/poc_diabolo_model_and_vision.py
table 作為輸入)—
text)*Provenance: annotate.py — ANNOTATE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.