summaryrefslogtreecommitdiff
path: root/plugins/catimg
diff options
context:
space:
mode:
authorTuowen Zhao <ztuowen@gmail.com>2026-01-04 22:47:54 -0800
committerTuowen Zhao <ztuowen@gmail.com>2026-01-04 22:47:54 -0800
commit2aa4cb7a52b28722816ecfd55f3b06293332c55c (patch)
treef02a9f3d59d109c70caf932a24e43368994e0e8c /plugins/catimg
parent7e951c254e779ff0620537cf43ca69dd878387b4 (diff)
parentd23d3ea69fdb839088e6e5589557cce77b34aaf8 (diff)
downloadzsh-2aa4cb7a52b28722816ecfd55f3b06293332c55c.tar.gz
zsh-2aa4cb7a52b28722816ecfd55f3b06293332c55c.tar.bz2
zsh-2aa4cb7a52b28722816ecfd55f3b06293332c55c.zip
Merge remote-tracking branch 'github/master'HEADmaster
Diffstat (limited to 'plugins/catimg')
-rw-r--r--plugins/catimg/README.md5
-rw-r--r--plugins/catimg/catimg.plugin.zsh8
-rw-r--r--plugins/catimg/catimg.sh14
3 files changed, 17 insertions, 10 deletions
diff --git a/plugins/catimg/README.md b/plugins/catimg/README.md
index 8f2688050..4cfda0e25 100644
--- a/plugins/catimg/README.md
+++ b/plugins/catimg/README.md
@@ -1,6 +1,7 @@
# catimg
-Plugin for displaying images on the terminal using the the `catimg.sh` script provided by [posva](https://github.com/posva/catimg)
+Plugin for displaying images on the terminal using the `catimg.sh` script provided by
+[posva](https://github.com/posva/catimg)
To use it, add `catimg` to the plugins array in your zshrc file:
@@ -10,7 +11,7 @@ plugins=(... catimg)
## Requirements
-- `convert` (ImageMagick)
+- `magick convert` (ImageMagick)
## Functions
diff --git a/plugins/catimg/catimg.plugin.zsh b/plugins/catimg/catimg.plugin.zsh
index f4ff6f856..ad10d8574 100644
--- a/plugins/catimg/catimg.plugin.zsh
+++ b/plugins/catimg/catimg.plugin.zsh
@@ -9,9 +9,11 @@
function catimg() {
- if [[ -x `which convert` ]]; then
- zsh $ZSH/plugins/catimg/catimg.sh $@
+ if (( $+commands[magick] )); then
+ CONVERT_CMD="magick" zsh $ZSH/plugins/catimg/catimg.sh $@
+ elif (( $+commands[convert] )); then
+ CONVERT_CMD="convert" zsh $ZSH/plugins/catimg/catimg.sh $@
else
- echo "catimg need convert (ImageMagick) to work)"
+ echo "catimg need magick/convert (ImageMagick) to work)"
fi
}
diff --git a/plugins/catimg/catimg.sh b/plugins/catimg/catimg.sh
index f58392428..7946ad16e 100644
--- a/plugins/catimg/catimg.sh
+++ b/plugins/catimg/catimg.sh
@@ -7,6 +7,10 @@
# GitHub: https://github.com/posva/catimg #
################################################################################
+# this should come from outside, either `magick` or `convert`
+# from imagemagick v7 and ahead `convert` is deprecated
+: ${CONVERT_CMD:=convert}
+
function help() {
echo "Usage catimg [-h] [-w width] [-c char] img"
echo "By default char is \" \" and w is the terminal width"
@@ -43,23 +47,23 @@ if [ ! "$WIDTH" ]; then
else
COLS=$(expr $WIDTH "/" $(echo -n "$CHAR" | wc -c))
fi
-WIDTH=$(convert "$IMG" -print "%w\n" /dev/null)
+WIDTH=$($CONVERT_CMD "$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
+if $CONVERT_CMD "$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"
+ # $CONVERT_CMD "$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 |
+$CONVERT_CMD "$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