howtophil icon

Store encrypted file as PNG (color code by pixels)

howtophil | PRO | 12/22/16 05:02:32 PM UTC | 0 ⭐ | 721 👁️ | Never ⏰ | []
Bash |

3.24 KB

|

None

|

0 👍

/

0 👎

#!/bin/bash
#------------------------------------------------------------
# To encrypt and store a file as a lossless PNG
#
# $ cat fileto.store | ./tocolor.sh imagefilename.png columnsize
#
# You will be prompted for your encryption key/passphrase
#
# You can pipe pretty much anything into it
# so output from tar, echo, etc will all work too.
# See updated version here: http://pastebin.com/nPU1sqsb
#------------------------------------------------------------
 
counter=0
rowcounter=0
if [ ! -n "$2" ]; then
    echo "Setting Column Size to 500"
    columnsize=500
else
    echo "Setting Column Size to $2"
    columnsize=$2
fi
collimit=$(($columnsize-1))
 
ccrypt -e | codegroup | tr '\n' ' '| (
    # while loop
    while IFS= read -r -n1 c
    do
        if [ $counter -gt $collimit ]; then
            counter=0
            let rowcounter+=1
        fi
        case "$c" in
            A) echo -e -n "$counter,$rowcounter: (  0,  0,  1)  #000001  srgb(0,0,1)\n" ;;
            B) echo -e -n "$counter,$rowcounter: (  0,  0,  2)  #000002  srgb(0,0,2)\n" ;;
            C) echo -e -n "$counter,$rowcounter: (  0,  0,  3)  #000003  srgb(0,0,3)\n" ;;
            D) echo -e -n "$counter,$rowcounter: (  0,  0,  4)  #000004  srgb(0,0,4)\n" ;;
            E) echo -e -n "$counter,$rowcounter: (  0,  0,  5)  #000005  srgb(0,0,5)\n" ;;
            F) echo -e -n "$counter,$rowcounter: (  0,  0,  6)  #000006  srgb(0,0,6)\n" ;;
            G) echo -e -n "$counter,$rowcounter: (  0,  0,  7)  #000007  srgb(0,0,7)\n" ;;
            H) echo -e -n "$counter,$rowcounter: (  0,  0,  8)  #000008  srgb(0,0,8)\n" ;;
            I) echo -e -n "$counter,$rowcounter: (  0,  0,  9)  #000009  srgb(0,0,9)\n" ;;
            J) echo -e -n "$counter,$rowcounter: (  0,  0, 16)  #000010  srgb(0,0,16)\n" ;;
            K) echo -e -n "$counter,$rowcounter: (  0,  0, 17)  #000011  srgb(0,0,17)\n" ;;
            L) echo -e -n "$counter,$rowcounter: (  0,  0, 18)  #000012  srgb(0,0,18)\n" ;;
            M) echo -e -n "$counter,$rowcounter: (  0,  0, 19)  #000013  srgb(0,0,19)\n" ;;
            N) echo -e -n "$counter,$rowcounter: (  0,  0, 20)  #000014  srgb(0,0,20)\n" ;;
            O) echo -e -n "$counter,$rowcounter: (  0,  0, 21)  #000015  srgb(0,0,21)\n" ;;
            P) echo -e -n "$counter,$rowcounter: (  0,  0, 22)  #000016  srgb(0,0,22)\n" ;;
            Q) echo -e -n "$counter,$rowcounter: (  0,  0, 23)  #000017  srgb(0,0,23)\n" ;;
            R) echo -e -n "$counter,$rowcounter: (  0,  0, 24)  #000018  srgb(0,0,24)\n" ;;
            S) echo -e -n "$counter,$rowcounter: (  0,  0, 25)  #000019  srgb(0,0,25)\n" ;;
            T) echo -e -n "$counter,$rowcounter: (  0,  0, 32)  #000020  srgb(0,0,32)\n" ;;
            U) echo -e -n "$counter,$rowcounter: (  0,  0, 33)  #000021  srgb(0,0,33)\n" ;;
            V) echo -e -n "$counter,$rowcounter: (  0,  0, 34)  #000022  srgb(0,0,34)\n" ;;
            W) echo -e -n "$counter,$rowcounter: (  0,  0, 35)  #000023  srgb(0,0,35)\n" ;;
            X) echo -e -n "$counter,$rowcounter: (  0,  0, 36)  #000024  srgb(0,0,36)\n" ;;
            Y) echo -e -n "$counter,$rowcounter: (  0,  0, 37)  #000025  srgb(0,0,37)\n" ;;
            Z) echo -e -n "$counter,$rowcounter: (  0,  0, 38)  #000026  srgb(0,0,38)\n" ;;
            " ") echo -e -n "$counter,$rowcounter: (  0,  0, 39)  #000027  srgb(0,0,39)\n" ;;
        esac
        let counter+=1
    done
    let rowcounter+=1
    echo "# ImageMagick pixel enumeration: $columnsize,$rowcounter,255,srgb"
    echo -e -n $color
) |sed '1h;1d;$!H;$!d;G' | convert -monitor txt: "$1"

Comments