function called to read the data of the file
data to pass to read_func.
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
Creates a new image surface from PNG data read incrementally via the read_func function.