2017-05-27 8 views
0

現在、PILとTkinterモジュールの両方を使用して、何らかのマッピングツールをPythonで作成しようとしています。これまでのところほとんどすべてがうまく動作します。 uiのセットアッププロセス中に、仮想イメージが作成されます(いくつかの入力pngファイルに基づいています)。これもうまくいきました。しかし、ImageTk.Photoを使用してキャンバス内にこの画像を表示しようとすると、画像にはっきりとは見えないものが表示されます。デバッグのために、PIL.Image自体のshowメソッドを使用して画像を出力しました。ImageTkとPILは正しくpng画像を表示しません

しかし、showメソッドがどのように表示され、どのようにキャンバスディスプレイが異なるか - 解決策を見つけられず、助けていただければ幸いです。

最初のすべてのコードexcggert(私はキャンバスの初期化と画像の表示を示しています。コード全体が極端に長くなり、私が推測するものはこれ以上ありません)。別の方法内側さらに

self.tileset_canvas = tkinter.Canvas(root, width=1024, height=1024) 
    self.tileset_canvas.create_line(0, 0, 80, 80) 
    self.tileset_raw_image = ImageTk.PhotoImage(PImage.new("RGB", (1024, 1024), "black")) 
    self.tileset_canvas_image = self.tileset_canvas.create_image(0, 0, image=self.tileset_raw_image) 
    self.tileset_canvas.grid(row=4, column=6, sticky=tkinter.W) 

Iは表示を変更:

これはキャンバスの初期のコードexcertある(ユーザが画像を表示するためのすべてのリソースのneccessaryをロードするまで私はcompletly黒画像を表示します)

 merged_img = PImage.new("RGB", (128, 512)) 
     merged_img.paste(tsp_img, (0, 0)) 
     merged_img.paste(tss_img, (0, 320)) 
     merged_img = merged_img.resize((1024, 1024)) #Double the view for a better mapping expierience 
     merged_img = merged_img.convert(mode="RGB") 
     self.tileset_raw_image = ImageTk.PhotoImage(merged_img) 
     merged_img.show() 
     self.tileset_canvas.itemconfig(self.tileset_canvas_image, image=self.tileset_raw_image) 

私が見ることができるように、私はshowメソッドを実際にどのように見えるか見ることもできます。

これは絵に何と呼ばれるショーメソッドの出力を、次のとおりです。ただし、これはUIの内側に示されているものである Output of show method

:気遣う人のため Output in the ui

答えて

0

、それは画像と思われますキャンバスの真ん中に固定されていたのではなく、正しく固定されていました。

関連する問題