Add preprocess_png_sticoeureuse.sh
This commit is contained in:
commit
ba2d06701d
1 changed files with 114 additions and 0 deletions
114
preprocess_png_sticoeureuse.sh
Normal file
114
preprocess_png_sticoeureuse.sh
Normal file
|
@ -0,0 +1,114 @@
|
|||
#!/bin/bash
|
||||
|
||||
print_usage() {
|
||||
printf "$License
|
||||
|
||||
Pour preprocess (resize, dither, potentiellement rotate) pour imprimer avec la stickerheureuse (TM)
|
||||
|
||||
Usage: \"./preprocess_png_sticoeureuse.sh -i input.jpg/png ...\"
|
||||
|
||||
-h help
|
||||
|
||||
-i fichier d'entrée.
|
||||
Si les options \"-r\" ou \"-a\" sont utilisé, alors -i sera le dossier d'entrée.
|
||||
Si rien n'est fournie alors le dossier d'entrée sera le dossier depuis lequel vous exécutez ce script.
|
||||
|
||||
-o nom du fichier de sortie (si rien n'est precisé, le fichier de sortie sera \"{input}_preprocessed.png\".
|
||||
|
||||
-s inverse le sens de l'image (par default le coté le moins long est la largeur du ruban)
|
||||
|
||||
-W fixer la largeur du ruban en pixel (default = 719 ~ 720 pour un ruban de 62mm)
|
||||
|
||||
-a faire l'operation pour tout les fichier image dans le dossier.
|
||||
|
||||
-r le faire pour tout les fichier image dans le dossier et recursivement dans tout les dossier en dessous.
|
||||
|
||||
-f [déconseilé] si ce flag est présent, le program reconvertira les fichier qui se finissent par \"_preprocessed\".
|
||||
|
||||
-N [déconseilé] n'utilise pas de courbe de calibration (utile pour la calibration. Courbe calibré sur une QL700)
|
||||
"
|
||||
}
|
||||
|
||||
curve="0/0 0.3/0.45 0.5/0.6 0.7/0.65 0.85/0.75 1/1"
|
||||
|
||||
input=
|
||||
output=
|
||||
all=false
|
||||
recursive=false
|
||||
include=false
|
||||
turn=">"
|
||||
width=719
|
||||
while getopts 'i:o:sW:Narfh' flag; do
|
||||
case "${flag}" in
|
||||
h) print_usage;
|
||||
exit 1;;
|
||||
i) input="${OPTARG}";;
|
||||
o) output="${OPTARG}";;
|
||||
s) turn="<";;
|
||||
a) all=true;;
|
||||
r) all=true; recursive=true;;
|
||||
f) include=true;;
|
||||
W) width="${OPTARG}";;
|
||||
N) curve="0/0 1/1";;
|
||||
esac
|
||||
done
|
||||
|
||||
echo ${input}
|
||||
|
||||
if [ "${all}" = "true" ]; then
|
||||
find_all() {
|
||||
first=1
|
||||
for ext in "$@"; do
|
||||
if [[ $first == 1 ]]; then
|
||||
find_filter=(-iname "*.$ext")
|
||||
first=0
|
||||
else
|
||||
find_filter+=( -o -iname "*.$ext")
|
||||
fi
|
||||
done
|
||||
|
||||
additional_flag=""
|
||||
if [ $recursive == false ] ; then
|
||||
additional_flag+="-maxdepth 1"
|
||||
fi
|
||||
|
||||
echo "$(find . ${additional_flag} -type f \( "${find_filter[@]}" \) | cut -b 3-)"
|
||||
}
|
||||
|
||||
if [ ! -z "${input}" ]; then
|
||||
cd ${input}
|
||||
fi
|
||||
|
||||
all=$(find_all "jpg" "jpeg" "png" "pdf" "PNG" "JPG")
|
||||
OIFS="$IFS"
|
||||
IFS=$'\n'
|
||||
for file in $all; do
|
||||
output="${file%.*}_preprocessed.png"
|
||||
|
||||
if [[ "${file%.*}" = *_preprocessed ]] && [ ${include} = false ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ "$(( $(identify -format "%w ${turn} %h" ${file}) ))" = "1" ]; then
|
||||
ffmpeg -i ${file} -frames:v 1 -vf scale=-1:719:force_original_aspect_ratio=decrease,curves=m="${curve}",hue=s=0,format=monob -pix_fmt rgb32 ${output} -y
|
||||
else
|
||||
ffmpeg -i ${file} -frames:v 1 -vf scale=719:-1:force_original_aspect_ratio=decrease,curves=m="${curve}",hue=s=0,format=monob,transpose=1 -pix_fmt rgb32 ${output} -y
|
||||
fi
|
||||
done
|
||||
IFS=$OIFS
|
||||
else
|
||||
if [ -z "${input}" ]; then
|
||||
echo "No input file provided !" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "${output}" ]; then
|
||||
output="${input%.*}_preprocessed.png"
|
||||
fi
|
||||
|
||||
if [ "$(( $(identify -format "%w ${turn} %h" ${input}) ))" = "1" ]; then
|
||||
ffmpeg -i ${input} -frames:v 1 -vf scale=-1:719:force_original_aspect_ratio=decrease,curves=m="${curve}",hue=s=0,format=monob -pix_fmt rgb32 ${output} -y
|
||||
else
|
||||
ffmpeg -i ${input} -frames:v 1 -vf scale=719:-1:force_original_aspect_ratio=decrease,curves=m="${curve}",hue=s=0,format=monob,transpose=1 -pix_fmt rgb32 ${output} -y
|
||||
fi
|
||||
fi
|
Loading…
Reference in a new issue