LaTex數學公式轉圖片,不依賴在線服務,真正Python實現

下午安裝了一個pylatex模塊,打算將LaTex語法描述的數學公式轉爲圖片。磕磕絆絆讀了半天文檔,發現pylatex屬於重型武器,寫起來不夠簡潔。網上搜了一下,CSDN上現成的Python代碼,只是不免費,要11個C幣。摸摸兜裏,還有些散碎銀子,就順手買了一個。下載之後,一讀源碼,居然只是封裝了一個http請求,圖片是在線生成的!這簡直就是搶劫啊,太沒有職業道德了!

花了一分鐘,調整一下情緒,琢磨着還是自己動手寫一個吧。很快,10行代碼,LaTex數學公式轉圖片就完成了。儘管稍顯簡陋,用起來還蠻爽。如果需要顏色、透明度啥的,請自己添加吧。

# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt

def formula2img(str_latex, out_file, img_size=(5,3), font_size=16):
    fig = plt.figure(figsize=img_size)
    ax = fig.add_axes([0, 0, 1, 1])
    ax.get_xaxis().set_visible(False)
    ax.get_yaxis().set_visible(False)
    ax.set_xticks([])
    ax.set_yticks([])
    plt.text(0.5, 0.5, str_latex, fontsize=font_size, verticalalignment='center', horizontalalignment='center')
    plt.savefig(out_file)
    #plt.show()
    #print('OK')
    
if __name__ == '__main__':
    str_latex = r'$10^x$'
    formula2img(str_latex, r'd:\f1.png', img_size=(3,2), font_size=64)
    
    str_latex = r'$s=\frac{1-z^{-1}}{T}$'
    formula2img(str_latex, r'd:\f2.png', img_size=(5,3), font_size=64)
    
    str_latex = r'$H(z)=\frac{Y(z)}{X(z)}=\frac{1}{RC{\frac{1-z^{-1}}{T}+1}}=\frac{T}{RC(1-Z^{-1})+T}$'
    formula2img(str_latex, r'd:\f3.png', img_size=(18,3), font_size=64)
    
    str_latex = r'$Y(n)=(\frac{1}{1+\frac{RC}{T}})X(n)+(\frac{\frac{RC}{T}}{1+\frac{RC}{T}})X(n-1)$'
    formula2img(str_latex, r'd:\f4.png', img_size=(18,3), font_size=64)

來看看輸出的效果:

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章