function called to read the data of the file
a new #cairo_surface_t initialized with the contents of the PNG file or a "nil" surface if the data read is not a valid PNG image or memory could not be allocated for the operation. A nil surface can be checked for with cairo_surface_status(surface) which may return one of the following values:
Alternatively, you can allow errors to propagate through the drawing operations and check the status on the context upon completion using cairo.context.Context.status.
Creates a new image surface from PNG data read incrementally via the read_func function.