当前位置: 首页 > 知识库问答 >
问题:

将matplotlib png转换为base64以在html模板中查看

盛辰沛
2023-03-14

您好,我正在尝试制作一个简单的web应用程序,根据教程,它计算阻尼振动方程,并在转换为Base64字符串后将结果的png返回到html页面。

应用程序正常运行,但在计算结果时,会返回一个损坏的图像图标,这可能是因为Base64字符串无效。

我使用在线转换器将另一个png图像转换为Base64字符串,并使用

这里是返回图像字符串的地方

from numpy import exp, cos, linspace
import matplotlib.pyplot as plt


def damped_vibrations(t, A, b, w):
    return A*exp(-b*t)*cos(w*t)


def compute(A, b, w, T, resolution=500):
    """Return filename of plot of the damped_vibration function."""
    t = linspace(0, T, resolution+1)
    u = damped_vibrations(t, A, b, w)
    plt.figure()  # needed to avoid adding curves in plot
    plt.plot(t, u)
    plt.title('A=%g, b=%g, w=%g' % (A, b, w))

    from io import BytesIO
    figfile = BytesIO()
    plt.savefig(figfile, format='png')
    figfile.seek(0)  # rewind to beginning of file
    import base64
    #figdata_png = base64.b64encode(figfile.read())
    figdata_png = base64.b64encode(figfile.getvalue())
    return figdata_png

这里是图像显示的地方

{% if result != None %}
<img src="data:image/png;base64,{{ result }}"\>
{% endif %}

如果需要,我也可以提供控制器文件。谢谢你的帮助!


共有2个答案

胡玉书
2023-03-14

尝试将节meta charset=“utf-8”添加到模板的HEAD节中。这对我有用:-)

朱锦
2023-03-14

模板中数据的开头给出了正在发生的事情的线索<代码>

在尝试使用Jinja呈现字节字符串之前,将其解码为字符串。

render_template('result.html', result=figdata_png.decode('utf8'))

Jinja在{{}中呈现对象的字符串表示形式。字节字符串的字符串表示形式包括b',以将其与Unicode字符串区分开来。所以你必须解码才能直接显示它们的值。

 类似资料:
  • 问题内容: 背景 你好,我正在尝试按照教程创建一个简单的Web应用程序,该应用程序将计算衰减的振动方程,并在将结果转换为Base64字符串后,将结果的png返回html页面。 问题 该应用程序正常运行,除了在计算结果时会返回损坏的图像图标,这可能是因为Base64字符串无效。 故障排除 我已经使用在线转换器将另一个png图像转换为Base64字符串,并用于成功显示该图像。我认为模板格式正确。我还在

  • 我有申请发邮件。图书馆使用了斯威夫特·梅勒。我已经生成了用于发送电子邮件html字符串,其中包含各种标记,包括标记我可以将img src标记转换为bas64图像吗 至

  • 问题内容: 这是我要对字符串进行编码的代码片段: 该带注释的部分有效,当由此生成的URL设置为img src时,它将显示图像: 问题在于下面的代码,生成的源变量为null 更新: 有没有更简单的方法可以使用JQuery做到这一点,从而能够从Blob文件中创建Base64字符串,如上面的代码所示? 问题答案: 将文档 编码为base64

  • 问题内容: 我有一个要求用户将其图像上传到哪里,我必须将其转换为某种内容并将其发送到.Net REStful服务。我是angular js的新手。有人可以帮忙吗 问题答案: 我建议您使用 https://github.com/ninjatronic/angular- base64 。 在按照说明使用该库之后,您可以简单地调用: 不要忘记在模块中注入:

  • 问题内容: 我有一个mongoDB数据库,并且恢复了对应于我的Image的base64数据。 我不知道如何将base64数据转换为Image。 问题答案: 如果您想在网页中使用它,只需将base64编码的图像放入HTML文件即可。 有关更多信息,请参见Wikipedia。

  • 这是代码 在此之后,在代码的某些部分,我需要将其转换回HTML(不是文件,只是普通HTML) 我怎么能这么做?