From f6d1d093579a53a204933e9f9284727f5ea03a6f Mon Sep 17 00:00:00 2001 From: gcch Date: Sun, 3 May 2026 15:24:37 +0200 Subject: [PATCH] =?UTF-8?q?ref(script)=20essaye=20du=20parall=C3=A9lisme?= =?UTF-8?q?=20pour=20la=20conversion=20d'images?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/app/uploads/lol.fish | 69 ++++++++++++++++++++++++++++++++++++ web/app/uploads/script.fish | Bin 2266 -> 163840 bytes 2 files changed, 69 insertions(+) create mode 100644 web/app/uploads/lol.fish diff --git a/web/app/uploads/lol.fish b/web/app/uploads/lol.fish new file mode 100644 index 00000000..d78b21a0 --- /dev/null +++ b/web/app/uploads/lol.fish @@ -0,0 +1,69 @@ +#!/usr/bin/fish + +set -f jpg $argv +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." + return +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 diff --git a/web/app/uploads/script.fish b/web/app/uploads/script.fish index 9a0647017ecbc6b57f3321ec030b9f1f9e54348c..76bfcf3e7d39e272dffe4c516100290c9d89796a 100644 GIT binary patch literal 163840 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 RS@B=%GLry{n+G|--~W