Python 将base64编码图像嵌入Dash数据表

Python 将base64编码图像嵌入Dash数据表,python,image,plotly-dash,Python,Image,Plotly Dash,我希望将图像作为data:URI嵌入到Dash数据表中,如下例所示。我从这里借用了嵌入。我正在使用下面代码中未包含的另一个库动态创建图像。当我使用 python app.py 我得到了一个带有编码字符串的数据表,而不是一个图像。我认为在文章的专栏部分使用“presentation”:“markdown”是可行的,但不幸的是不行 我还尝试将url包装在一个短横线html.Img组件中,但这似乎也不起作用 在此方面的任何帮助都将不胜感激!多谢各位 import dash import dash_t

我希望将图像作为data:URI嵌入到Dash数据表中,如下例所示。我从这里借用了嵌入。我正在使用下面代码中未包含的另一个库动态创建图像。当我使用

python app.py
我得到了一个带有编码字符串的数据表,而不是一个图像。我认为在文章的专栏部分使用“presentation”:“markdown”是可行的,但不幸的是不行

我还尝试将url包装在一个短横线html.Img组件中,但这似乎也不起作用

在此方面的任何帮助都将不胜感激!多谢各位

import dash
import dash_table
import pandas as pd


url1 = '![Hello World](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAAAUCAAAAAAVAxSkAAABrUlEQVQ4y+3TPUvDQBgH8OdDOGa+oUMgk2MpdHIIgpSUiqC0OKirgxYX8QVFRQRpBRF8KShqLbgIYkUEteCgFVuqUEVxEIkvJFhae3m8S2KbSkcFBw9yHP88+eXucgH8kQZ/jSm4VDaIy9RKCpKac9NKgU4uEJNwhHhK3qvPBVO8rxRWmFXPF+NSM1KVMbwriAMwhDgVcrxeMZm85GR0PhvGJAAmyozJsbsxgNEir4iEjIK0SYqGd8sOR3rJAGN2BCEkOxhxMhpd8Mk0CXtZacxi1hr20mI/rzgnxayoidevcGuHXTC/q6QuYSMt1jC+gBIiMg12v2vb5NlklChiWnhmFZpwvxDGzuUzV8kOg+N8UUvNBp64vy9q3UN7gDXhwWLY2nMC3zRDibfsY7wjEkY79CdMZhrxSqqzxf4ZRPXwzWJirMicDa5KwiPeARygHXKNMQHEy3rMopDR20XNZGbJzUtrwDC/KshlLDWyqdmhxZzCsdYmf2fWZPoxCEDyfIvdtNQH0PRkH6Q51g8rFO3Qzxh2LbItcDCOpmuOsV7ntNaERe3v/lP/zO8yn4N+yNPrekmPAAAAAElFTkSuQmCC)'

data = [['Item 1', url1], ['Item 2', url1]]

# Create the pandas DataFrame 
df = pd.DataFrame(data, columns = ['Name', 'Image']) 

app = dash.Dash(__name__)


app.layout = dash_table.DataTable(
    id='table',
    columns=[{"name": 'Name', "id": 'Name'},
    {
            'id': 'Image',
            'name': 'Image',
            'presentation': 'markdown',
        },
    ],
    #fixed_columns={ 'headers': True, 'data': 1 },
    data=df.to_dict('records'),

)

if __name__ == '__main__':
    app.run_server(debug=True)

看起来像是在本地添加了一个资产文件夹,并在其中转储了图像文件,以便于显示

如果我将上述代码中的url1行替换为以下内容:

url1 = '![myImage-1](assets/test.png)'
并确保我在应用程序行中添加了assets_文件夹的位置

app = dash.Dash(__name__, assets_folder='assets')

图像将显示在表的每一行中。理想情况下,数据uri可以工作,我更喜欢这种方法,但我想现在我会把它作为一个潜在的答案发布

看起来像是在本地添加一个资产文件夹,并将图像文件转储到其中,以便于显示

如果我将上述代码中的url1行替换为以下内容:

url1 = '![myImage-1](assets/test.png)'
并确保我在应用程序行中添加了assets_文件夹的位置

app = dash.Dash(__name__, assets_folder='assets')

图像将显示在表的每一行中。理想情况下,数据uri可以工作,我更喜欢这种方法,但我想现在我会把它作为一个潜在的答案发布

如果我将url1更改为“`url1=”![s] src=数据:图像/png;base64,iVBORw0K…“``我在表中看到一个损坏的图像图标。我还看到html图像元素在这种情况下被激活,但是如果我将url1更改为“url1=”,看起来像是某种格式问题![s] src=数据:图像/png;base64,iVBORw0K…“``我在表中看到一个损坏的图像图标。我还看到html图像元素在这种情况下被激活了,但是看起来像是某种格式问题`````````嘿,丹尼斯,我试着准确地实现了这一点,我得到了:!图像列下的[myImage-1]Assets/test2.png。你必须事先对图像进行预处理吗?嘿,丹尼斯,我试着准确地实现了这一点,我得到:!图像列下的[myImage-1]Assets/test2.png。你必须事先对图像进行预处理吗?