Skip to content

Releases: xiaosuyyds/PowerText

v0.7.1

29 Mar 10:19

Choose a tag to compare

修复无法正常执行字体回退逻辑的bug

Full Changelog: 0.7.0...0.7.1

v0.7.0

29 Mar 08:53

Choose a tag to compare

⚠️ 破坏性变更 (Breaking Changes) - 迁移必读

  • 协议变更:项目协议正式变更为 MPL-2.0
  • API 签名改动
    • draw_text 删除了 has_emojiemoji_source 参数。
    • Font 构造函数的 matcher 回调函数,现在统一接收一个 TypedDict 对象 SegmentDict
      • 旧版:lambda char: ...
      • 新版:lambda data: data['text'] ...
  • 依赖变化:彻底移除了对 pilmoji 的强依赖。Emoji 渲染现在通过将 Emoji 字体(如 Noto Color Emoji)作为常规 Font 对象加入 fonts 列表来实现。
  • 子模块移除:现在移除了子模块local_emoji_source。

🚀 性能优化

  • 智能换行算法:新增启发式换行预测算法。通过识别字符权重(区分宽窄字符)并结合线性探测,减少了处理长文本换行时的测量次数。
  • 核心类引入 __slots__,减少对象内存开销。
  • 其他缓存、方法优化,总体性能提升约20%~40%。

✨ 新功能

  • 字体动态缩放Font 类新增 size 属性。支持加载高分辨率字体后,在渲染时自动进行高质量的图像缩放(Resampling),解决了部分字体固定尺寸无法更改的问题。
  • 全自动 cmap 提取:重新设计了字体字符映射表获取逻辑,现在能够自动识别并读取来自文件路径、BytesIO 或内存二进制数据的字体,极大增强了与 Web 框架及动态字体生成的兼容性。

Full Changelog: 0.6.0...0.7.0

v0.6.0

27 Aug 10:36

Choose a tag to compare

v0.6.0 Pre-release
Pre-release

✨ 新功能

  • 动态文本样式: Fontmatcher 函数现在可以返回一个 FontMatcherResult 对象,从而为匹配到的文本片段动态应用样式。目前已支持动态 color(颜色),可以轻松实现关键字高亮等功能。

    示例:

    # 以前: matcher 只能返回 True/False
    Font(font, matcher=lambda text: text in ["T", "E"])
    
    # 现在: matcher 可以为特定词语动态指定颜色
    Font(font, matcher=lambda text: FontMatcherResult(color=(255, 0, 0)) if text == "e" else False)

📈 优化与改进

  • 通过字体缓存提升性能: 当在不同的 Font 对象中重复使用同一个字体文件时,由于增加了内部缓存,在部分场景下性能会更高。
  • 内部代码重构: 核心渲染逻辑已重构为使用 dataclass,提高了代码的可维护性,并为未来的功能扩展做好了准备。

v0.5.0

03 May 09:52

Choose a tag to compare

v0.5.0 Pre-release
Pre-release

支持wrap_indent功能,可以设置自动换行的缩进

v0.4.0

30 Apr 10:29

Choose a tag to compare

v0.4.0 Pre-release
Pre-release

不兼容改动:

修改 draw_text 函数的返回值,现在 draw_text 函数返回一个NamedTuple,提供了更多的信息

Full Changelog: 0.3.1...0.4.0

v0.3.1

31 Mar 11:44

Choose a tag to compare

v0.3.1 Pre-release
Pre-release

修复list[dict]文本处理的bug

v0.3.0

31 Mar 10:07

Choose a tag to compare

v0.3.0 Pre-release
Pre-release

支持字体回退与list[dict]格式的文本

v0.2.3

30 Mar 14:56

Choose a tag to compare

v0.2.3 Pre-release
Pre-release

修复返回值错误

v0.2.2

30 Mar 13:23

Choose a tag to compare

v0.2.2 Pre-release
Pre-release

为绘制文本函数添加返回值: 最后的x坐标与最后的y坐标
Full Changelog: 0.2.1...0.2.2

v0.2.1

30 Mar 08:43

Choose a tag to compare

v0.2.1 Pre-release
Pre-release

修复文本渲染时的可能的类型错误,以及更改readme示例