Как base64 кодировать изображение в linux bash/shell - программирование
Подтвердить что ты не робот

Как base64 кодировать изображение в linux bash/shell

Я пытаюсь base64 кодировать изображение в оболочке script и помещать его в переменную:

test="$(printf DSC_0251.JPG | base64)"
echo $test
RFNDXzAyNTEuSlBH

Я также пробовал что-то вроде этого:

test=\`echo -ne DSC_0251.JPG | base64\`

но все же без успеха.

Я хочу сделать что-то вроде этого:

curl -v -X POST -d '{"image":$IMAGE_BASE64,"location":$LOCATION,"time_created":$TIMECREATED}' -H 'Content-type: text/plain; charset=UTF8' http://192.168.1.1/upload

Я нашел это http://www.zzzxo.com/q/answers-bash-base64-encode-script-not-encoding-right-12290484.html

но все же не имели успеха.

4b9b3361

Ответ 1

Вам нужно использовать cat, чтобы получить содержимое файла с именем "DSC_0251.JPG", а не самим именем файла.

test="$(cat DSC_0251.JPG | base64)"

Однако base64 может читать из самого файла:

test=$( base64 DSC_0251.JPG )

Ответ 2

Результат в одной строке:

base64 -w 0 DSC_0251.JPG

Для HTML:

echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"

как файл:

base64 -w 0 DSC_0251.JPG > DSC_0251.JPG.base64

В переменной:

IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"

В переменной для HTML:

IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"

Получите обратно читаемые данные:

base64 -d DSC_0251.base64 > DSC_0251.JPG 

См: http://www.greywyvern.com/code/php/binary2base64

Ответ 3

Для этого есть команда Linux: base64

base64 DSC_0251.JPG >DSC_0251.b64

Чтобы назначить результат переменной, используйте

test=`base64 DSC_0251.JPG`

Ответ 4

База 64 для html:

file="DSC_0251.JPG"
type=$(identify -format "%m" "$file" | tr '[A-Z]' '[a-z]')
echo "data:image/$type;base64,$(base64 -w 0 "$file")"

Ответ 5

Для base64 это и положить его в буфер обмена:

file="test.docx"
base64 -w 0 $file  | xclip -selection clipboard

Ответ 6

Если вам нужен вклад от терминологии, попробуйте это

lc='echo -n "xxx_${yyy}_iOS" |  base64'
Опция

-n не будет вводить символ "\n" в команду base64.