base64 encoding
Base64 encoding can be used for any data. The output always % 3 = 0 (the last \n is counted).
Command in Linux
base64 <filename> is a command to encode an image into base64 string
Below is my avatar in base64 encoding.
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
Render with Chrome
Chrome can decode base64 just fine. Just tell Chrome what type of data it is and the data is encoded with base64. The format would look like data:image/jpg;base64,<BASE64STRING>.
Try to put the string below in Chrome's address bar.
data:image/jpg;base64,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
Post image with Base64
An image can be uploaded via HTTP POST if the user agent support base64 encoding in the post body.