Mathjax现在在我的项目中运作良好.但有一个问题.有没有办法将MathJax的公式(纯html和css)转换为img文件.我可以救
所以在python中我有以下代码,取自这个答案:
import matplotlib.pyplot as plt
import sympy
x = sympy.symbols('x')
y = 1 + sympy.sin(sympy.sqrt(x**2 + 20))
lat = sympy.latex(y)
#add text
plt.text(0, 0.6, r"$%s$" % lat, fontsize = 50)
#hide axes
fig = plt.gca()
fig.axes.get_xaxis().set_visible(False)
fig.axes.get_yaxis().set_visible(False)
plt.savefig('out.png', bbox_inches='tight', pad_inches=0)
plt.show()
Run Code Online (Sandbox Code Playgroud)
这将打开文本并将其导出到 png 文件就好了:
但这包括框架外空白之外的空白。您将如何裁剪图像以仅导出文本,例如边界框,像这样?
我想将方程式渲染为PNG文件,并将它们嵌入到我的库的HTML文档中.我已经在其他项目中使用了pylab(matplotlib).
我没有在http://matplotlib.sourceforge.net/users/usetex.html和http://matplotlib.sourceforge.net/users/mathtext.html找到任何线索.
当我做
plt.title(r'$\alpha > \beta$')
plt.show()
Run Code Online (Sandbox Code Playgroud)
我得到一个带有轴的标题空图.
更新:
经过一些研究后我发现,将LaTeX渲染到png的最简单方法是使用mathext(http://code.google.com/p/mathtex/).
令人惊讶的是,我已经将所有需要的库从源代码中构建出来.
无论如何,感谢大家的回复.
更新2:
我做了一些mathtex的测试,发现它不支持矩阵(\ begin {pmatrix})和其他一些我需要的东西.所以,我要安装LaTex(MikTeX).
更新3:
我安装了proTeXt.这是巨大的,但易于使用和快速.恕我直言,现在它是渲染方程的唯一方法.
我正在尝试注释我用 python 创建的一些图形。因此,我生成一个包含指定文本的图像(使用 PIL ImageDraw)并将其与图像连接起来。现在,我想在文本中包含数学符号。创建文本图像时有没有办法在乳胶数学中写入文本?这个答案建议使用 unicode 文本来解决问题,但我更喜欢直接用乳胶编写文本。
微量元素:
from PIL import ImageFont, Image, ImageDraw
from matplotlib import pyplot
def get_annotation(image_shape: tuple, title: str, font_size: int = 50):
frame_height, frame_width = image_shape[:2]
times_font = ImageFont.truetype('times-new-roman.ttf', font_size)
text_image = Image.new('RGB', (frame_width, frame_height), (255, 255, 255))
drawer = ImageDraw.Draw(text_image)
w, h = drawer.textsize(title, font=times_font)
drawer.text(((frame_width - w) / 2, (frame_height - h) / 2), text=title, fill=(0, 0, 0), font=times_font,
align='center')
annotation = numpy.array(text_image)
return annotation
if __name__ == '__main__':
anno = …Run Code Online (Sandbox Code Playgroud)