How to Base64 Encode Image in Linux Bash / Shell
I'm Trying to Base64 Encode an Image in a Shell Script and Put It into Variable: Test="$(Printf Dsc_0251. Jpg | Base64)" Echo $Test Rfndxzaynteuslbh I've Also...
I'm trying to base64 encode an image in a shell script and put it into variable:
test="$(printf DSC_0251.JPG | base64)"
echo $test
RFNDXzAyNTEuSlBH
I've also tried something like this:
test=\`echo -ne DSC_0251.JPG | base64\`
but still with no success.
I want to do something like this:
curl -v -X POST -d '{"image":$IMAGE_BASE64,"location":$LOCATION,"time_created":$TIMECREATED}' -H 'Content-type: text/plain; charset=UTF8'
I found this
but still have had no success.
7 Answers
You need to use cat to get the contents of the file named 'DSC_0251.JPG', rather than the filename itself.
test="$(cat DSC_0251.JPG | base64)"
However, base64 can read from the file itself:
test=$( base64 DSC_0251.JPG )
Encode
Must Read
On Linux
Single line result:
base64 -w 0 DSC_0251.JPG
For HTML:
echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
As file:
base64 -w 0 DSC_0251.JPG > DSC_0251.JPG.base64
In variable:
IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"
In variable for HTML:
IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"