You could actually make this a bit more user friendly by converting an image to base64 upon upload before embedding it into the blockchain actually
Data on chain is raw binary, no need to text encode it. Allowing inputing base64 pngs is a good idea, thx
IPFS may also be a good solution for storing image/video/audio data.
Yes, IPFS is currently the top choice for media storage :)