84 lines
2.2 KiB
Fish
Executable file
84 lines
2.2 KiB
Fish
Executable file
#!/usr/bin/fish
|
|
|
|
# Vérification de la présence des binaires nécessaires.
|
|
if not type --query gm
|
|
echo -e "GraphicsMagick is missing."
|
|
exit 1
|
|
end
|
|
if not type --query cjxl
|
|
echo -e "A JPEGXL encoder (cjxl) is missing."
|
|
exit 1
|
|
end
|
|
if not type --query avifenc
|
|
echo -e "An AVIF encoder (avifenc) is missing."
|
|
exit 1
|
|
end
|
|
|
|
for jpg in **/*.{jpg,jpeg}
|
|
echo $jpg
|
|
|
|
set -f avif (path change-extension 'avif' "$jpg")
|
|
set -f jxl (path change-extension 'jxl' "$jpg")
|
|
set -f png (path change-extension 'png' "$jpg")
|
|
|
|
set -f dimensions (gm identify -format "%w-%h" $jpg)
|
|
set -f dimensions (string split "-" $dimensions)
|
|
|
|
if test $dimensions[1] -eq 1920 || test $dimensions[2] -eq 1920
|
|
set -f a_bonnes_dimensions true
|
|
else
|
|
set -f a_bonnes_dimensions false
|
|
end
|
|
|
|
if test -e $avif && test -e $jxl
|
|
echo -e "\tAll there."
|
|
continue
|
|
end
|
|
|
|
gm convert "$jpg" -resize 1920x1920\> "$png" >/dev/null
|
|
|
|
if ! test -e $jxl
|
|
# Si les dimensions ne sont pas bonnes, convertis l'image PNG en JPEGXL puis reconstruis une image JPEG.
|
|
# C'est une forme de redimensionnement lossless.
|
|
if test $a_bonnes_dimensions = false
|
|
cjxl \
|
|
--allow_jpeg_reconstruction=1 \
|
|
--brotli_effort=11 \
|
|
--container=1 \
|
|
--effort=9 \
|
|
--lossless_jpeg=1 \
|
|
--num_threads=-1 \
|
|
--progressive \
|
|
$png $jxl &>/dev/null
|
|
|
|
djxl \
|
|
--num_threads=-1 \
|
|
$jxl $jpg &>/dev/null
|
|
end
|
|
|
|
cjxl \
|
|
--allow_jpeg_reconstruction=0 \
|
|
--brotli_effort=11 \
|
|
--container=1 \
|
|
--effort=10 \
|
|
--quality=70 \
|
|
--lossless_jpeg=0 \
|
|
--num_threads=-1 \
|
|
--progressive \
|
|
$png $jxl &>/dev/null
|
|
echo -e "\t$jxl"
|
|
|
|
set -f avif (path change-extension 'avif' "$jpg")
|
|
if ! test -e $avif
|
|
avifenc \
|
|
-q 70 \
|
|
-s 0 \
|
|
-c aom \
|
|
-y 420 \
|
|
"$png" "$avif" &>/dev/null
|
|
echo -e "\t$avif"
|
|
end
|
|
|
|
rm $png
|
|
end
|
|
end
|