GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So codieren Sie ein Bild mit Base64 in Linux Bash / Shell

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

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

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


Dafür gibt es einen Linux-Befehl:base64

base64 DSC_0251.JPG >DSC_0251.b64

Um das Ergebnis einer Variablen zuzuweisen, verwenden Sie

test=`base64 DSC_0251.JPG`

Codieren

Unter Linux

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)"

Auf OSX

Auf OSX , die base64 binär ist anders, und die Parameter sind anders. Wenn Sie es unter OSX verwenden möchten , sollten Sie -w 0 entfernen .

Einzeiliges Ergebnis:

base64 DSC_0251.JPG

Für HTML :

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

Als Datei:

base64 DSC_0251.JPG > DSC_0251.JPG.base64

In Variable:

IMAGE_BASE64="$(base64 DSC_0251.JPG)"

In Variable für HTML :

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

Generisches OSX/Linux

Als Shell-Funktion

@base64() {
  if [[ "${OSTYPE}" = darwin* ]]; then
    # OSX
    if [ -t 0 ]; then
      base64 "[email protected]"
    else
      cat /dev/stdin | base64 "[email protected]"
    fi
  else
    # Linux
    if [ -t 0 ]; then
      base64 -w 0 "[email protected]"
    else
      cat /dev/stdin | base64 -w 0 "[email protected]"
    fi
  fi
}

# Usage
@base64 DSC_0251.JPG
cat DSC_0251.JPG | @base64

Als Shell-Skript

Erstellen Sie base64.sh Datei mit folgendem Inhalt:

#!/usr/bin/env bash
if [[ "${OSTYPE}" = darwin* ]]; then
  # OSX
  if [ -t 0 ]; then
    base64 "[email protected]"
  else
    cat /dev/stdin | base64 "[email protected]"
  fi
else
  # Linux
  if [ -t 0 ]; then
    base64 -w 0 "[email protected]"
  else
    cat /dev/stdin | base64 -w 0 "[email protected]"
  fi
fi

Ausführbar machen:

chmod a+x base64.sh

Verwendung:

./base64.sh DSC_0251.JPG
cat DSC_0251.JPG | ./base64.sh

Decodieren

Erhalten Sie lesbare Daten zurück:

base64 -d DSC_0251.base64 > DSC_0251.JPG 

Sie müssen cat verwenden um den Inhalt abzurufen der Datei mit dem Namen 'DSC_0251.JPG' und nicht der Dateiname selbst.

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

Allerdings base64 aus der Datei selbst lesen kann:

test=$( base64 DSC_0251.JPG )

Linux
  1. So verwenden Sie ein verschlüsseltes Passwort in einem Linux-Bash-Shell-Skript

  2. So zeigen Sie Bildmetadaten unter Linux an

  3. Wie kürze ich die Bash-Eingabeaufforderung unter Linux?

  4. So konfigurieren Sie eine eingeschränkte Bash-Shell unter Linux

  5. Wie die BASH-Shell ihre Konfigurationsdateien unter Linux lädt

So verwenden Sie den Declare-Befehl in der Linux Bash Shell

So installieren Sie Linux Bash Shell unter Windows 10

So ändern Sie eine Benutzer-Shell in Linux

So installieren und verwenden Sie Nu Shell unter Linux

Bash-Skripting:So geben Sie Text in der Linux-Shell aus und formatieren ihn

Wie verwende ich die Linux-Bash-Shell in Windows 10?