The image for the user profile is selected using the content chooser. Once selected, it is transferred to safedefaultexternal , then uploaded for storage on the server, but the upload operation is not performed without storage permission.
You should be able to read the contents with File.ReadBytes, convert it to Base64 (via StringUtils) and send it to your server. If you need an other way please specify what you exactly need.