diff options
Diffstat (limited to 'plugins/catimg')
| -rw-r--r-- | plugins/catimg/catimg.plugin.zsh | 17 | ||||
| -rwxr-xr-x | plugins/catimg/catimg.sh | 88 | ||||
| -rw-r--r-- | plugins/catimg/colors.png | bin | 0 -> 353 bytes | 
3 files changed, 105 insertions, 0 deletions
diff --git a/plugins/catimg/catimg.plugin.zsh b/plugins/catimg/catimg.plugin.zsh new file mode 100644 index 000000000..cb92f5986 --- /dev/null +++ b/plugins/catimg/catimg.plugin.zsh @@ -0,0 +1,17 @@ +################################################################################ +# catimg script by Eduardo San Martin Morote aka Posva                         # +# http://posva.net                                                             # +#                                                                              # +# Ouput the content of an image to the stdout using the 256 colors of the      # +# terminal.                                                                    # +# Github: https://github.com/posva/catimg                                      # +################################################################################ + + +function catimg() { +  if [[ -x  `which convert` ]]; then +    zsh $ZSH/plugins/catimg/catimg.sh $@ +  else +    echo "catimg need convert (ImageMagick) to work)" +  fi +} diff --git a/plugins/catimg/catimg.sh b/plugins/catimg/catimg.sh new file mode 100755 index 000000000..cd0f2e333 --- /dev/null +++ b/plugins/catimg/catimg.sh @@ -0,0 +1,88 @@ +################################################################################ +# catimg script by Eduardo San Martin Morote aka Posva                         # +# http://posva.net                                                             # +#                                                                              # +# Ouput the content of an image to the stdout using the 256 colors of the      # +# terminal.                                                                    # +# Github: https://github.com/posva/catimg                                      # +################################################################################ + +function help() { +  echo "Usage catimg [-h] [-w width] [-c char] img" +  echo "By default char is \"  \" and w is the terminal width" +} + +# VARIABLES +COLOR_FILE=$(dirname $0)/colors.png +CHAR="  " + +WIDTH="" +IMG="" + +while getopts qw:c:h opt; do +  case "$opt" in +    w) WIDTH="$OPTARG" ;; +    c) CHAR="$OPTARG" ;; +    h) help; exit ;; +    *) help ; exit 1;; +    esac +  done + +while [ "$1" ]; do +  IMG="$1" +  shift +done + +if [ "$IMG" = "" -o ! -f "$IMG" ]; then +  help +  exit 1 +fi + +if [ ! "$WIDTH" ]; then +  COLS=$(expr $(tput cols) "/" $(echo -n "$CHAR" | wc -c)) +else +  COLS=$(expr $WIDTH "/" $(echo -n "$CHAR" | wc -c)) +fi +WIDTH=$(convert "$IMG" -print "%w\n" /dev/null) +if [ "$WIDTH" -gt "$COLS" ]; then +  WIDTH=$COLS +fi + +REMAP="" +if convert "$IMG" -resize $COLS\> +dither -remap $COLOR_FILE /dev/null ; then +  REMAP="-remap $COLOR_FILE" +else +  echo "The version of convert is too old, don't expect good results :(" >&2 +  #convert "$IMG" -colors 256 PNG8:tmp.png +  #IMG="tmp.png" +fi + +# Display the image +I=0 +convert "$IMG" -resize $COLS\> +dither `echo $REMAP` txt:- 2>/dev/null | +sed -e 's/.*none.*/NO NO NO/g' -e '1d;s/^.*(\(.*\)[,)].*$/\1/g;y/,/ /' | +while read R G B f; do +  if [ ! "$R" = "NO" ]; then +    if [ "$R" -eq "$G" -a "$G" -eq "$B" ]; then +      (( +      I++, +      IDX = 232 + R * 23 / 255 +      )) +    else +      (( +      I++, +      IDX = 16 +      + R * 5 / 255 * 36 +      + G * 5 / 255 * 6 +      + B * 5 / 255 +      )) +    fi +    #echo "$R,$G,$B: $IDX" +    echo -ne "\e[48;5;${IDX}m${CHAR}" +  else +    (( I++ )) +    echo -ne "\e[0m${CHAR}" +  fi +  # New lines +  (( $I % $WIDTH )) || echo -e "\e[0m" +done diff --git a/plugins/catimg/colors.png b/plugins/catimg/colors.png Binary files differnew file mode 100644 index 000000000..5f2c8126b --- /dev/null +++ b/plugins/catimg/colors.png  | 
