Search code examples
pythonbitmaptkinterpython-imaging-librarybmp

How to load .bmp file into BitmapImage class Tkinter python


I'm unable to find any way to load .bmp file into Tkinter() so that I can use it in a canvas widget!Plz help me!

from Tkinter import *
from PIL import Image
import ImageTk
import tkFileDialog
import tkMessageBox
root=Tk()
class lapp:
   def __init__(self,master):
      w=Canvas(root,width=300,height=300)
      w.pack()
      p=Image.open("001.bmp")
      tkimage=ImageTk.PhotoImage(p)
      w.creat_image(0,0,image=tkimage)
App=lapp(root)
root.mainloop()

Its not showing any image on the canvas, its just blank! Btw I'm using win7 with python 2.7


Solution

  • This works for me.

    The image doesn't show when I use the Tk PhotoImage class. But it works ok when using PIL.

    My image size is 50*250, so I've put coordinates that center it (25, 125)

    from Tkinter import *
    from PIL import Image, ImageTk
    
    root=Tk()
    
    root.title("My Image")
    
    w = Canvas(root, width=50, height=250)
    image = Image.open("blog0.bmp")
    w.create_image((25, 125), image=ImageTk.PhotoImage(image))
    
    w.pack()
    
    root.mainloop()
    

    I hope it helps