如何使用临时文件将类型 IPython.core.display.Image 转换为 base64 字符串?

How can i convert type IPython.core.display.Image to base64 string using tempfile?

我正在尝试从随机森林分类器中可视化决策树。 但是,正在生成的图像类型是 IPython.core.display.Image 我希望使用临时文件库将其转换为 base64 字符串

import tempfile
import base64
from IPython.display import Image  
from sklearn import tree
import pydotplus

dot_data = tree.export_graphviz(model.best_estimator_[0], out_file=None, 
                                feature_names=X_train.columns,  
                                class_names=unique_target)

graph = pydotplus.graph_from_dot_data(dot_data)  

# Show graph
image= Image(graph.create_png())

with tempfile.TemporaryFile(suffix=".png") as tmpfile:
    fig = image.get_figure()

"AttributeError: 'Image' object has no attribute 'get_figure'"

type(image)
Out[32]: IPython.core.display.Image


我得到的错误是:

"AttributeError: 'Image' object has no attribute 'get_figure'"

我有点迷茫 在不显式保存文件的情况下将其转换为 base64。

成功了。我和一个朋友试了几个小时。

import base64
from IPython.display import Image  
from sklearn import tree
import pydotplus

dot_data = tree.export_graphviz(model.best_estimator_[0], out_file=None, 
                                feature_names=X_train.columns,  
                                class_names=unique_target)

graph = pydotplus.graph_from_dot_data(dot_data)  


image= Image(graph.create_png())
Encoded_Image=str(base64.b64encode(image.data)) ##That's the line you add before you save it as an Encoded String

不需要添加临时文件部分的代码。