diff options
Diffstat (limited to 'test/isurface_create_for_data2.py')
-rwxr-xr-x | test/isurface_create_for_data2.py | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/test/isurface_create_for_data2.py b/test/isurface_create_for_data2.py index 88b4c5c..c4f290b 100755 --- a/test/isurface_create_for_data2.py +++ b/test/isurface_create_for_data2.py @@ -1,26 +1,30 @@ #!/usr/bin/env python """test cairo.ImageSurface.create_for_data() with a numpy array """ +import tempfile import cairo - import numpy -dir_ = "/tmp/" +if not (cairo.HAS_IMAGE_SURFACE and cairo.HAS_PNG_FUNCTIONS): + raise SystemExit ('cairo was not compiled with ImageSurface and PNG support') + +h, fileName = tempfile.mkstemp(prefix='pycairo_', suffix='.png') 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 + 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 + # cairo.FORMAT_ARGB32 uses pre-multiplied alpha + data[y][x][0] = int(x * alpha/255.0) # B + data[y][x][1] = int(y * alpha/255.0) # G + data[y][x][2] = 0 # R + data[y][x][3] = alpha # A surface = cairo.ImageSurface.create_for_data (data, cairo.FORMAT_ARGB32, width, height) ctx = cairo.Context(surface) -surface.write_to_png(dir_ + 'for_data2.png') +surface.write_to_png(fileName) +print "see %s output file" % fileName |