Port raytracer to TensorFlow.
[the-worst-raytracer] / accidental_complexity.py
1 # Emil Mikulic <emikulic@gmail.com> was here 2012.
2 import numpy as np
3 import pygtk
4 pygtk.require('2.0')
5 import gtk
6
7 def from_float(img, gamma=2.2):
8 return (pow(img, 1./gamma) * 255).clip(0, 255).astype(np.uint8)
9
10 def show(img, fullscreen=False):
11 img = from_float(img)
12 h,w,_ = img.shape
13 window = gtk.Window()
14 window.set_position(gtk.WIN_POS_CENTER)
15 window.set_resizable(False)
16 window.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('black'))
17 window.connect("delete-event", gtk.main_quit)
18 window.resize(w, h)
19 im = gtk.Image()
20 window.add(im)
21 pb = gtk.gdk.pixbuf_new_from_array(img, gtk.gdk.COLORSPACE_RGB, 8)
22 im.set_from_pixbuf(pb)
23 im.show()
24
25 def on_key_press_event(widget, event):
26 if gtk.gdk.keyval_name(event.keyval) in ('Escape', 'q'):
27 gtk.main_quit()
28 window.connect("key_press_event", on_key_press_event)
29
30 if fullscreen:
31 window.fullscreen()
32 window.present()
33 gtk.main()
34
35 # vim:set ts=2 sw=2 et: