def load_from_data(self, data): x, y, data = data assert data.dtype == 'uint8' h, w, channels = data.shape s = pixbufsurface.Surface(x, y, w, h, alpha=True, data=data) self._load_from_pixbufsurface(s)
def load_from_numpy(self, arr, x, y): """Loads tile data from a numpy array :param arr: Array containing the pixel data :type arr: numpy.ndarray of uint8, dimensions HxWx3 or HxWx4 :param x: X coordinate for the array :param y: Y coordinate for the array :returns: the dimensions of the loaded surface, as (x,y,w,h) """ h, w, channels = arr.shape if h <= 0 or w <= 0: return (x, y, w, h) if arr.dtype == 'uint8': s = pixbufsurface.Surface(x, y, w, h, data=arr) self._load_from_pixbufsurface(s) else: raise ValueError("Only uint8 data is supported by MyPaintSurface") return (x, y, w, h)