2017-04-10 5 views
0

ここでは私が作業しているコードです。私はちょうどグリッドに画像を挿入する場所を見ることができません。私はfill' is forの色should I use image.open`を知っていますか?もしそうなら、それはグリッド内でどこに行きますか?tkinterグリッドで画像を使用するにはどうすればよいですか?

class photo(): # take the photo 
    def __init__(self,filename=None): 
     with picamera.PiCamera() as cam: 
      cam.resolution= (640, 480) 
      cam.framerate = 60 
      cam.AWB_MODES 
      cam.EXPOSURE_MODES 
      for effect in cam.IMAGE_EFFECTS: 
       cam.image_effect=random 
      for i in range(1000): 
       cam.capture('/home/pi/Pictures/camFolder/img_%i.jpg') 
       time.sleep(2) 

class App(tk.Tk): # build the grid 
    def __init__(self, *args, **kwargs): 
     tk.Tk.__init__(self, *args, **kwargs) 

     self.canvas = tk.Canvas(self, width=1000, height=1000, borderwidth=0, highlightthickness=0) 
     self.canvas.pack(side="top",fill="both", expand="true") 
     self.rows= 10 
     self.columns =10 
     self.cellwidth =100 
     self.cellheight =100 
     self.rect = {} 
     self.oval = {} 
     for column in range(20): 
      for row in range(20): 
       x1 = column*self.cellwidth 
       y1= row * self.cellwidth 
       x2 = x1 + self.cellwidth 
       y2 = y1 + self.cellheight 
       self.rect[row,column]= self.canvas.create_rectangle(x1,y1,x2,y2, fill ="blue", tags="rect") 
       self.oval[row,column]= self.canvas.create_oval(x1+2,y1+2,x2-2,y2-2, fill="blue", tags="oval") 

     self.redraw(1000) 

    def redraw(self,delay): 
     self.canvas.itemconfig("rect", fill="blue") 
     self.canvas.itemconfig("oval", fill="yellow") 
     for i in range(10): 
      row = random.randint(0,19) 
      col = random.randint(0,19) 
      item_id = self.oval[row,col] 
      self.canvas.itemconfig(item_id, fill="blue") 
     self.after(delay, lambda: self.redraw(delay)) 

if __name__=="__main__": 
    app = App() 
    app.mainloop() 

私はPythonには新しく、私は飛行機で学んでいます。

答えて

0

あなたのプログラムに画像を追加するには、tkinterのPhotoImageを使うべきです。方法は以下の通りです。doc

あなたはこのようにそれを使用することができます:

from PIL import Image, ImageTk 

image = Image.open("lenna.jpg") 
photo = ImageTk.PhotoImage(image) 

label = Label(image=photo) 
label.image = photo 
label.pack() 

注:上記のように見えるようTkinterのは、JPGまたはPNGまたは他の多くの種類をサポートしていない、あなたはフォークPILや枕を使用する必要があります。サポートされているフォーマットは、PILを使用する必要のないGIFおよびPGM/PPMのみです。

関連する問題