GNU/Linux >> Linux Esercitazione >  >> Linux

Come codificare l'immagine in base64 in linux bash/shell

Se hai bisogno di input dal terminale, prova questo

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

-n l'opzione non inserirà il carattere "\n" nel comando base64.


C'è un comando Linux per questo:base64

base64 DSC_0251.JPG >DSC_0251.b64

Per assegnare il risultato alla variabile utilizzare

test=`base64 DSC_0251.JPG`

Codifica

Su Linux

Risultato riga singola:

base64 -w 0 DSC_0251.JPG

Per HTML :

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

Come file:

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

Nella variabile:

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

Nella variabile per HTML :

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

Su OSX

Su OSX , il base64 binario è diverso e i parametri sono diversi. Se vuoi usarlo su OSX , dovresti rimuovere -w 0 .

Risultato riga singola:

base64 DSC_0251.JPG

Per HTML :

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

Come file:

base64 DSC_0251.JPG > DSC_0251.JPG.base64

Nella variabile:

IMAGE_BASE64="$(base64 DSC_0251.JPG)"

Nella variabile per HTML :

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

OSX/Linux generico

Come funzione shell

@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

Come script shell

Crea base64.sh file con il seguente contenuto:

#!/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

Rendilo eseguibile:

chmod a+x base64.sh

Utilizzo:

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

Decodifica

Ottieni dati leggibili:

base64 -d DSC_0251.base64 > DSC_0251.JPG 

Devi usare cat per ottenere i contenuti del file denominato 'DSC_0251.JPG', piuttosto che il nome del file stesso.

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

Tuttavia, base64 può leggere dal file stesso:

test=$( base64 DSC_0251.JPG )

Linux
  1. Come utilizzare la password crittografata nello script della shell Bash Linux

  2. Come visualizzare i metadati delle immagini su Linux

  3. Come abbreviare il prompt di Bash in Linux?

  4. Come confrontare le stringhe negli script di Bash Shell

  5. Come cambiare la shell in Linux

Come utilizzare il comando Declare in Linux Bash Shell

Come installare Linux Bash Shell su Windows 10

Come modificare una shell utente in Linux

Come installare e utilizzare Nu Shell su Linux

Bash Scripting:come generare e formattare il testo su Linux Shell

Come utilizzare Linux Bash Shell in Windows 10?