import time

def time_stamp(s):
  sys.stderr.write("%.2f: %s\n" % (time.clock(), s));

from tkinter import *
import png

time_stamp("create objects..")

reader = png.Reader(filename="image.png")
width, height, pixels, properties = reader.asRGBA();
pixels = list(pixels)
root = Tk()
image = PhotoImage(width=width, height=height)

time_stamp("make string")

ss = []
y = 0
for row in pixels:
    ss.append('{')
    for x in range(width):
        r, g, b = [row[4 * x + i] for i in range(3)]
        ss.append("#%02x%02x%02x" % (r, g, b))
    ss.append('}')
    y += 1

time_stamp("draw pixels.. (%d,%d)" % (len(pixels), width))

image.put(" ".join(ss), (0, 0))

time_stamp("draw window..")

label = Label(root, image=image)
label.grid()
root.mainloop()