Встраивание изображения в кодировке base64 в таблицу данных Da sh - PullRequest
0 голосов
/ 12 февраля 2020

Я надеюсь вставить изображение в виде данных: URI в Da sh Datatable, как в примере ниже. Я позаимствовал вложение из этого сообщения . Я создаю изображения на лету, используя другую библиотеку, не включенную в код ниже. Когда я запускаю сервер Da sh, используя

python app.py

, я получаю таблицу данных с закодированной строкой, а не изображение. Я думал, что использование 'presentation': 'markdown' (в разделе столбцов da sh документация ) будет работать, но, к сожалению, нет.

Я также пытался обернуть URL в компоненте da sh 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)

1 Ответ

0 голосов
/ 12 февраля 2020

Похоже, что добавление папки ресурсов локально и дамп файлов изображений в ней работает в отношении отображения

Если я заменю строку url1 в приведенном выше коде на что-то вроде следующего:

url1 = '![myImage-1](assets/test.png)'

и убедитесь, что я добавляю местоположение "assets_folder" в строку приложения

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

, изображение будет отображаться в каждой строке таблицы. В идеале данные uri будут работать, и я предпочел бы такой подход, но я решил опубликовать это на данный момент в качестве потенциального ответа.

...