def screen_shot(name="screen_shot.png"): """window screenshot.""" width, height = glutGet(GLUT_WINDOW_WIDTH), glutGet(GLUT_WINDOW_HEIGHT) data = glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE) import png png.write(open(name, "wb"), width, height, 3, data)
def screen_shot(name="screen_shot.png"): """window screenshot.""" width, height = glutGet(GLUT_WINDOW_WIDTH), glutGet(GLUT_WINDOW_HEIGHT) size = width * height * 3 pixel_buffer = glGenBuffers(1) glBindBuffer(GL_PIXEL_PACK_BUFFER, pixel_buffer) glBufferData(GL_PIXEL_PACK_BUFFER, size, None, GL_STREAM_READ) glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, c_void_p(0)) data = string_at(glMapBuffer(GL_PIXEL_PACK_BUFFER, GL_READ_ONLY), size) import png png.write(open(name, "wb"), width, height, 3, data) glUnmapBuffer(GL_PIXEL_PACK_BUFFER) glBindBuffer(GL_PIXEL_PACK_BUFFER, 0) glDeleteBuffers(1, [pixel_buffer])
def screen_shot(name="screen_shot.png"): """window screenshot.""" width, height = glutGet(GLUT_WINDOW_WIDTH), glutGet(GLUT_WINDOW_HEIGHT) size = width*height*3 pixel_buffer = glGenBuffers(1) glBindBuffer(GL_PIXEL_PACK_BUFFER, pixel_buffer) glBufferData(GL_PIXEL_PACK_BUFFER, size, None, GL_STREAM_READ) glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, c_void_p(0)) data = string_at(glMapBuffer(GL_PIXEL_PACK_BUFFER, GL_READ_ONLY), size) import png png.write(open(name, "wb"), width, height, 3, data) glUnmapBuffer(GL_PIXEL_PACK_BUFFER) glBindBuffer(GL_PIXEL_PACK_BUFFER, 0) glDeleteBuffers(1, [pixel_buffer])
def write(filename, data, file=None, chart=(0,0)): if filename.endswith('.zip'): import native return native.write(filename, data, file, chart) elif filename.endswith('.png'): import png return png.write(filename, data, file, chart) elif filename.endswith('.fits'): import fits return fits.write(filename, data, file, chart) else: raise ValueError, 'Do not understand how to write file "%s"' % filename
def main(): eye = np.array([0, 0, -1]) target = np.array([0, 0, 0]) up = np.array([0, 1, 0]) cube = Model.load_obj('icosaedron.obj') cube.compute_face_normals() w = 64 h = 64 os.makedirs('images', exist_ok=True) n = 100 tau = 2 * math.pi for a in range(n): eye = np.array([math.sin(tau * a / n), 0, math.cos(tau * a / n)]) im = np.zeros((h, w, 4), 'uint8') render(im, cube, numgl.lookat(eye, target, up)) with open('images/{:02}.png'.format(a), 'wb') as f: f.write(png.write(im.tobytes(), w, h)) out = 'out.gif' create_gif(sorted(glob('images/*.png')), out) print(out)
import math import png from drawing import blank_canvas, marker size = 500 cycles = lambda n: n * 2 * math.pi def plot(canvas, sample_rate): for x in range(size): v = x * cycles(2) / size w = math.sin(v) y = size // 2 + int(size // 2 * 0.9 * w) if x % sample_rate == 0: marker(canvas, x, y) for r in [2, 5, 13, 23, 47, 57, 73, 97]: path = f'out.{r:02d}.png' canvas = blank_canvas(size) plot(canvas, r) png.write(canvas, path)
def geti(self): data = glReadPixels(10, 190, 700, 700, GL_RGBA, GL_UNSIGNED_BYTE) import png png.write(open("screen_shot.png", "wb"), 700, 700, 4, data)
if (0): # color gradient testing valResults = { (0, 0): 0.0, (1, 0): 0.1, (2, 0): 0.2, (3, 0): 0.3, (4, 0): 0.4, (5, 0): 0.5, (6, 0): 0.6, (7, 0): 0.7, (8, 0): 0.8, (9, 0): 0.9, (10, 0): 1.0, } png.write(args.out, config, valResults, 11, 1) sys.exit(0) i = 0 for loc in utils.grid(bounds, lat_steps, lng_steps): yi = i // lng_steps xi = i % lng_steps #print('xi = ' + str(xi) + ' yi = ' + str(yi)) y = loc['loc']['lat'] x = loc['loc']['lng'] results[(y, x)] = {} if (1): if (funcRecord.get('module')): results[(y, x)]['val'] = evaluate_variable((y, x), data, config, args.func) else: results[(y, x)]['val'] = evaluate((y, x), data, config, funcRecord) valResults[(xi,yi)] = results[(y, x)]['val']