Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How can i display image from mysql to python gui ? #1088

Open
2020Yasir-Sahibzada opened this issue Jan 8, 2021 · 3 comments
Open

How can i display image from mysql to python gui ? #1088

2020Yasir-Sahibzada opened this issue Jan 8, 2021 · 3 comments

Comments

@2020Yasir-Sahibzada
Copy link

I am trying , like this :

from tkinter import *
from io import BytesIO
window= Tk()
db=MySQLdb.connect("localhost","root","??","??")
cursor=db.cursor()
sql= "SELECT LOGO FROM SYSTEMDETAILS" cursor.execute(sql)
logo=cursor.fetchone()
img = Image.open(BytesIO(logo))
phimg = ImageTk.PhotoImage(img)
panel = Label(window, image = phimg)
panel.pack()

When i run this, it show error in line 9 , it want logo as an object but in here its tuple

@somanyadav
Copy link

Hello @2020Yasir-Sahibzada,

I think you can try to access like this,

logo = cursor.fetchone()
img_data = logo[0]

And after that you can use the BytesIO class to wrap the image data,

img = Image.open(BytesIO(img_data))

@anuragdaksh7
Copy link

Hey @2020Yasir-Sahibzada I think you didn't included mysql imports for the code
adding them might solve your issue

@sanjomathew09
Copy link

import mysql.connector
from tkinter import Tk, Label
from PIL import Image, ImageTk
from io import BytesIO

Connect to MySQL

conn = mysql.connector.connect(user='username', password='password', host='localhost', database='your_db')
cursor = conn.cursor()

Fetch the image from MySQL

cursor.execute("SELECT image_column FROM images_table WHERE id = %s", (image_id,))
logo = cursor.fetchone()

Convert binary to an image

img_data = logo[0]
img = Image.open(BytesIO(img_data))

Setup Tkinter window

root = Tk()
tk_img = ImageTk.PhotoImage(img)
label = Label(root, image=tk_img)
label.pack()

root.mainloop()
Insert image
pip install mysql-connector-python pillow
Bash

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants