it-swarm.com.de

So codieren Sie ein Bild mit base64 in Linux bash / shell

Ich versuche, ein Bild in einem Shell-Skript mit base64 zu kodieren und in eine Variable zu setzen:

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

Ich habe auch so etwas ausprobiert:

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

aber immer noch ohne Erfolg.

Ich möchte so etwas machen:

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

Ich habe dies gefunden http://www.zzzxo.com/q/answers-bash-base64-encode-script-not-encoding-right-12290484.html

habe aber noch keinen erfolg gehabt.

78
dash00

Sie müssen cat verwenden, um das content der Datei mit dem Namen 'DSC_0251.JPG' zu erhalten, und nicht den Dateinamen selbst.

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

Jedoch, base64 kann aus der Datei selbst lesen:

test=$( base64 DSC_0251.JPG )
122
chepner

Einzeiliges Ergebnis:

base64 -w 0 DSC_0251.JPG

Für HTML:

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

Als Datei:

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

In Variable:

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

In Variable für HTML:

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

Erhalten Sie lesbare Daten zurück:

base64 -d DSC_0251.base64 > DSC_0251.JPG 

Siehe: http://www.greywyvern.com/code/php/binary2base64

44
Eduardo Cuomo

Dafür gibt es einen Linux-Befehl: base64

base64 DSC_0251.JPG >DSC_0251.b64

Zuweisung des Ergebnisses zur Variablenverwendung

test=`base64 DSC_0251.JPG`
34
David Jashi

Basis 64 für html:

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

Wenn Sie Eingaben vom Terminal benötigen, versuchen Sie dies

lc=`echo -n "xxx_${yyy}_iOS" |  base64`

Die Option -n Gibt kein "\ n" -Zeichen in den base64-Befehl ein.

0
Victor Choy

Um es zu base64 und in die Zwischenablage zu legen:

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