must use [cairo.surface.Surface.unmapImage] to destroy this image surface.
This function always returns a valid pointer, but it will return a pointer to a "nil" surface if other is already in an error state or any other error occurs. If the returned pointer does not have an error status, it is guaranteed to be an image surface whose format is not [cairo.types.Format.Invalid].