Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Ohmyzsh
Commits
a811ab0b
Commit
a811ab0b
authored
Mar 08, 2014
by
Robby Russell
Browse files
Merge pull request #2331 from posva/catimg
Catimg plugin
parents
e744bf22
8309b0a1
Changes
3
Hide whitespace changes
Inline
Side-by-side
plugins/catimg/catimg.plugin.zsh
0 → 100644
View file @
a811ab0b
################################################################################
# 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
}
plugins/catimg/catimg.sh
0 → 100755
View file @
a811ab0b
################################################################################
# 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
plugins/catimg/colors.png
0 → 100644
View file @
a811ab0b
353 Bytes
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment