summaryrefslogtreecommitdiff
path: root/test/isurface_create_for_data2.py
blob: 88b4c5c54bc0f74136fdc2a88e99f6ed9a2b18d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env python
"""test cairo.ImageSurface.create_for_data() with a numpy array
"""

import cairo

import numpy

dir_ = "/tmp/"
width, height = 255, 255
data = numpy.ndarray (shape=(height,width,4), dtype=numpy.uint8)

for x in range(width):
    for y in range(height):
        alpha = y

        # cairo.FORMAT_ARGB32 uses pre-multiplied alpha
        data[y][x][0] = int(x * alpha/255.0)
        data[y][x][1] = int(y * alpha/255.0)
        data[y][x][2] = 0
        data[y][x][3] = alpha

surface = cairo.ImageSurface.create_for_data (data, cairo.FORMAT_ARGB32,
                                              width, height)
ctx = cairo.Context(surface)
surface.write_to_png(dir_ + 'for_data2.png')