summaryrefslogtreecommitdiff
path: root/test/isurface_create_for_data2.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/isurface_create_for_data2.py')
-rwxr-xr-xtest/isurface_create_for_data2.py24
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