cairo: don't use temporary file to convert internal data to pixbuf