GNU/Linux >> Znalost Linux >  >> Linux

Jak kódovat obrázek base64 v linux bash / shell

Pokud potřebujete vstup z terminálu, zkuste toto

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

-n volba nevloží znak "\n" do příkazu base64.


Existuje na to linuxový příkaz:base64

base64 DSC_0251.JPG >DSC_0251.b64

Chcete-li přiřadit výsledek k proměnné, použijte

test=`base64 DSC_0251.JPG`

Kódovat

V systému Linux

Výsledek s jedním řádkem:

base64 -w 0 DSC_0251.JPG

Pro HTML :

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

Jako soubor:

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

V proměnné:

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

V proměnné pro HTML :

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

V systému OSX

V systému OSX , base64 binární je jiný a parametry jsou jiné. Pokud jej chcete používat v systému OSX , měli byste odstranit -w 0 .

Výsledek s jedním řádkem:

base64 DSC_0251.JPG

Pro HTML :

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

Jako soubor:

base64 DSC_0251.JPG > DSC_0251.JPG.base64

V proměnné:

IMAGE_BASE64="$(base64 DSC_0251.JPG)"

V proměnné pro HTML :

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

Generický OSX/Linux

Jako funkci 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

Jako skript Shell

Vytvořte base64.sh soubor s následujícím obsahem:

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

Udělejte jej spustitelným:

chmod a+x base64.sh

Použití:

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

Dekódovat

Získejte zpět čitelná data:

base64 -d DSC_0251.base64 > DSC_0251.JPG 

Musíte použít cat získat obsah souboru s názvem 'DSC_0251.JPG', nikoli samotného souboru.

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

Nicméně base64 může číst ze samotného souboru:

test=$( base64 DSC_0251.JPG )

Linux
  1. Jak používat šifrované heslo ve skriptu Linux Bash Shell

  2. Jak vymazat historii Bash na Linuxu

  3. Jak změnit Cron Shell (sh to Bash)?

  1. Jak zobrazit metadata obrázků v systému Linux

  2. Jak nakonfigurovat omezený Bash Shell v Linuxu

  3. Jak BASH Shell načítá své konfigurační soubory v Linuxu

  1. Jak zkrátit Bash Prompt v Linuxu?

  2. Jak porovnávat řetězce ve skriptování Bash Shell

  3. Jak změnit Shell v Linuxu