【问题标题】:Blender render complex fonts as rendered with Python Pillow libraqmBlender 使用 Python Pillow libraqm 渲染复杂字体
【发布时间】:2021-07-25 10:53:44
【问题描述】:

我正在尝试在搅拌机中正确渲染孟加拉语字体,但渲染不正确。我在尝试使用 python 在图像上绘制孟加拉语文本时遇到了同样的问题。我发现枕头可以做到这一点,但它不像英文文本那样简单。我能够通过下面的这两个链接使其工作,

How do I install 'libraqm' library in Google Colab?

How to install pre-built Pillow wheel with libraqm DLLs on Windows?

这些是 withoutwith libraqm 的结果,

不正确

正确

这是基本代码,

from PIL import ImageFont, ImageDraw, Image
import numpy as np
import matplotlib.pyplot as plt

image = np.zeros((200, 600, 3), np.uint8)
image = Image.fromarray(np.uint8(image * 255))

draw = ImageDraw.Draw(image)

# use a truetype font
font = ImageFont.truetype("/content/BalooDa2-Medium.ttf", 24)

draw.text((20, 25), "আমাদের দেশের ক্রিকেটাররা এখন টেস্ট খেলায় জিততে জানে", font=font)
draw.text((20, 50), "গরমে সুস্থ থাকুন", font=font)

plt.figure(figsize = (20,20))
plt.imshow(image)

完整的脚本在这里,https://github.com/quickgrid/CodeLab/blob/master/colab/Pillow_Render_Bangla_Font_Text_to_Image_libraqm.ipynb

在搅拌机中使用自定义孟加拉语字体会产生这样的错误结果

我想知道如何在带有文本的搅拌机中实现与 libraqm 相同的功能。有什么方法可以安装带有枕头的 libraqm 以在搅拌机或任何其他方式中正确渲染字体?

【问题讨论】:

    标签: python graphics python-imaging-library rendering blender


    【解决方案1】:

    编辑:

    原来 Blender 2.92 已经包含了路径追踪。将图像拖放到视口中,然后Object > Trace Image to Grease Pencil在选定对象上可以跟踪可以拉伸到任何高度要求的路径以生成3D文本。

    虽然输出跟踪中存在一些明显的问题,如下所示。

    来源,https://www.youtube.com/watch?v=m5QdBZ5sDG0


    可以使用位图跟踪器跟踪黑白图像以转换为svg path。 Inkscape 能够做到这一点,它可以导出搅拌机。我找到了解决此问题的临时方法。

    我仍然更喜欢去除黑色像素(或倒置)并将白色像素沿 Z 轴拉伸到给定高度以使用 python 创建网格而不使用 Inkscape 之类的东西的答案。为此,我目前的想法是使用 python 获取轮廓,以某种方式将它们保存为矢量路径,保存为 svg,最后加载到搅拌机中。

    找到这篇关于位图追踪的非 ML 论文,http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.159.5801&rep=rep1&type=pdf

    我发现了另外两种使用高度渲染字体的方法,但这不是我喜欢的方法。一个使用bump,另一个使用displacement + bump。使用凹凸不提供适当的高度,但从远处看起来不错并且能够获得正确的阴影。

    要使用displacement + bump 或仅使用displacement,需要对平面进行大量细分,以获得适当的高度,并使用搅拌机循环获得较好的效果。黑白蒙版图像应作为图像纹理进行三次插值以提高效果。

    【讨论】:

      猜你喜欢
      • 2018-07-07
      • 2011-07-08
      • 2017-03-28
      • 1970-01-01
      • 2017-06-15
      • 2021-08-20
      • 2016-12-20
      • 2021-09-23
      • 2016-05-24
      相关资源
      最近更新 更多