与NumPy集成

https://numpy.org/

NumPy和ImageSurface

从NumPy数组创建ImageSurface:

import numpy
import cairo

width, height = 255, 255
data = numpy.ndarray(shape=(height, width), dtype=numpy.uint32)
surface = cairo.ImageSurface.create_for_data(
    data, cairo.FORMAT_ARGB32, width, height)

从ImageSurface创建NumPy数组:

import numpy
import cairo

width, height = 255, 255
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
buf = surface.get_data()
data = numpy.ndarray(shape=(height, width),
                        dtype=numpy.uint32,
                        buffer=buf)