from bokeh.plotting import figure, show
import base64
from bokeh.models import ColumnDataSource

image_path = "./input_image.png"

def image_to_base64(file_path):
    with open(file_path, 'rb') as img_file:
        return base64.b64encode(img_file.read()).decode('utf-8')

encoded_image = image_to_base64(image_path)
html_image = f'data:image/png;base64,{encoded_image}'

plot = figure(x_range=(0, 1), y_range=(0, 1), output_backend="webgl")

plot.image_url(url=[html_image], x=0, y=1, w=1, h=1)

text_data = {'x': [0.5], 'y': [0.5], 'text': ['Hello123, Bokeh123!']}
source = ColumnDataSource(text_data)
plot.text(x='x', y='y', text='text', source=source, text_align='center', text_baseline='middle', text_color='black',
       text_font_size='20pt')

show(plot)