Right now the camera control will store a photo as a dataURI string (when used in browser on on Android/IOS)
eg data:image/jpeg;base64<long base64 string>
Now since this is a string, one can easily pass this to flow and unencode it back to a binary there: I describe this approach in a recernt blog post.
Unfortunately this method is brittle. Firstly, if you use PowerApps Studio App, it stores the data a local blob object which looks like this:
blob:https://us.create.powerapps.com/dd6409a9-1b09-4ef5-a64b-21c84b16bb54 (if using the web player)blob:http://127.0.0.1:49428/b7371d5a-bec9-45da-acb4-e2c6a1fefff6 (if using the Android/IOS player)
Furthermore the "Add picture" control stores things as a blob no matter what.
If you hook PowerApps to flow and try and use the image(s) the blob URL is sent as a string, and therefore cannot be processed at the flow end. Flow can only handle dataURI encoded strings.
Now there are a couple of ways around this depending on your perspective. One easy thing to do would be to provide a function that allows a local blob item to be converted to a dataURI formatted string - hence the idea of a BlobtoURI function. This would mean I can deploy PowerApps and have the ability to work with images just using flow and not having to resort to writing a custom API or Azure fucntion.
While I recogmise that a good solution might be for the flow team to support formdata from PowerApps and not just a string, I beleive the method I present here is simpler, has no UI impacts and is unlikely to create regression issues as it is simple adding a function.
This thread is a key to understanding this issue...
Updating status and adding @EvanChakiMSFT