Изменение размеров изображений

Если интегрировать скрипт в меню файлового менеджера.
resize-image-2.1.sh
| #!/bin/bash
set -e
function cropXY {
local fname=$1
local fnameNew="$1 RESIZED $2x$3"
cp "$fname" "$fnameNew" -r
find "$fnameNew" -name "*.jpg" -print0 | xargs -0 mogrify -resize "$2"x"$3"^ -gravity Center -extent "$2"x"$3"
}
function cropX {
local fname=$1
local fnameNew="$1 RESIZED width-$2"
cp "$fname" "$fnameNew" -r
find "$fnameNew" -name "*.jpg" -print0 | xargs -0 mogrify -resize "$2"
}
function cropY {
local fname=$1
local fnameNew="$1 RESIZED height-$2"
cp "$fname" "$fnameNew" -r
find "$fnameNew" -name "*.jpg" -print0 | xargs -0 mogrify -resize x"$2"
}
function getCropSizes {
local -r inp=$(
zenity --forms --separator="x" \
--text "min - max\r${minSize} - ${maxSize} px" \
--add-entry "X ширина px" \
--add-entry "Y высота px"
)
if [[ -z $inp ]]; then
exit 1
else
echo "$inp"
fi
}
function ifFolderNotSelected {
if [[ -z $1 ]]; then
echo "папки не выбраны"
zenity --error --text="Папки не выбраны"
exit 0
fi
}
# ============= params ==============
minSize=50
maxSize=5000
IFS='
'
# ============= execute ==============
ifFolderNotSelected "$1"
crop_sizes=$(getCropSizes)
X=$(echo ${crop_sizes} | cut -d "x" -f 1)
Y=$(echo ${crop_sizes} | cut -d "x" -f 2)
if ((maxSize > X && X > minSize && maxSize > Y && Y > minSize)); then
echo "X и Y"
for folder in "${@}"; do
cropXY "$folder" "$X" "$Y"
done | zenity --progress --pulsate --auto-close
elif ((maxSize > X && X > minSize)); then
echo "только X"
for folder in "${@}"; do
cropX "$folder" "$X"
done | zenity --progress --pulsate --auto-close
elif ((maxSize > Y && Y > minSize)); then
echo "только Y"
for folder in "${@}"; do
cropY "$folder" "$Y"
done | zenity --progress --pulsate --auto-close
else
echo "размеры указаны неверно"
zenity --error --text="Размеры указаны неверно. Убедись что вводишь цифры и соблюдаешь допустимые границы"
fi
|
resize-image-1.0.sh
| #!/bin/bash
function smaller {
mkdir -p $1
mogrify -verbose -path $1 -resize $2 $3/*.jpg
}
# ============= params ==============
default_size=900
# ============= execute ==============
default_size=$(zenity --title "Укажи размер" --entry --text "Размер картинок по ширине px:" --entry-text "${default_size}")
IFS='
'
for pholder in ${@}; do
smaller "${pholder}-ширина-${default_size}" ${default_size} ${pholder}
done | zenity --progress --pulsate --auto-close
|