6个版本
0.2.3 | 2024年1月5日 |
---|---|
0.2.2 | 2023年11月28日 |
0.2.1 | 2023年8月5日 |
0.2.0 | 2023年7月7日 |
0.1.0 | 2023年5月11日 |
#365 in 文本处理
81 monthly downloads
在 6 个crates中使用(通过 piet-cosmic-text)
16KB
159 lines
line-straddler
确定在加下划线/删除线文本时线应该放在哪里。
当你绘制文本时,你需要确定文本装饰的线应该放在哪里。这个crate提供了一个无渲染器的LineGenerator
,为一系列Glyph
生成Line
结构。
源代码
此仓库的标准代码保存在 Codeberg 上。为了方便,还保留在 GitHub 上。
示例
use line_straddler::{LineGenerator, Line, LineType, Glyph, GlyphStyle, Color};
// Take some glyphs from, e.g, cosmic-text
// For instance, this is two lines of two glyphs.
let style = GlyphStyle {
bold: false,
color: Color::rgba(0, 0, 0, 255),
};
let glyphs = [
Glyph {
line_y: 0.0,
font_size: 4.0,
width: 2.0,
x: 0.0,
style,
},
Glyph {
line_y: 0.0,
font_size: 4.0,
width: 2.0,
x: 3.0,
style,
},
Glyph {
line_y: 5.0,
font_size: 4.0,
width: 2.0,
x: 0.0,
style,
},
Glyph {
line_y: 5.0,
font_size: 4.0,
width: 2.0,
x: 3.0,
style,
},
];
// Create a line generator.
let mut alg = LineGenerator::new(LineType::Underline);
// Generate lines for the glyphs.
let mut lines = Vec::new();
for glyph in glyphs {
lines.extend(alg.add_glyph(glyph));
}
lines.extend(alg.pop_line());
// Draw all of the lines.
for line in lines {
let point_1 = (line.start_x, line.y);
let point_2 = (line.end_x, line.y);
draw_line(point_1, point_2, line.style);
}
许可证
line-straddler
是自由软件:您可以重新分发它并/或修改它,在以下许可条款下
- 自由软件基金会发布的GNU Lesser General Public License的版本3,或者(根据您的选择)许可证的任何后续版本。
- 由Mozilla Foundation发布的Mozilla Public License版本2。
line-straddler
的分发是希望它将是有用的,但没有任何保证;甚至没有关于其商业性或适用于特定目的的暗示保证。有关详细信息,请参阅GNU Lesser General Public License或Mozilla Public License。
您应该已收到GNU Lesser General Public License和Mozilla Public License的副本。如果没有,请参阅 https://www.gnu.org/licenses/。
依赖关系
~105KB