From c10fa2a4961d9d93e20e7cc8e8d27e6be5467138 Mon Sep 17 00:00:00 2001 From: onli Date: Wed, 26 Feb 2025 16:59:36 +0100 Subject: [PATCH 1/2] Enable custom parameters for .webp and .avif thumbnails The thumbnail code assumed that images are .gif, .png or .jpg, and we defaulted to quality settings for .jpg thumbnails. But for both .avif and .webp, other quality settings are preferable (and possible other additional parameters). This code changes the code for $serendipity['imagemagick_thumb_parameters'] so that it can be an array, with the image mime type as key and their specific parameters as values. It also sets sane defaults for the gd path for both formats, which also enables thumbnails in both formats when imagemagick is not used. --- include/functions_images.inc.php | 29 ++++++++++++++++++++++++++++- serendipity_config.inc.php | 5 ++++- test.avif | Bin 0 -> 13235 bytes 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 test.avif diff --git a/include/functions_images.inc.php b/include/functions_images.inc.php index 996ec117c..f54179741 100644 --- a/include/functions_images.inc.php +++ b/include/functions_images.inc.php @@ -735,7 +735,22 @@ function serendipity_makeThumbnail($file, $directory = '', $size = false, $thumb $newSize .= '>'; // tell imagemagick to not enlarge small images, only works if safe_mode is off (safe_mode turns > in to \>) } if (!$serendipity['imagemagick_nobang']) $newSize .= '!'; // force the first run image geometry exactly to given sizes, if there were rounding differences (see https://github.com/s9y/Serendipity/commit/94881ba4c0e3bdd4b5fac510e93977e239171c1c and comments) - $cmd = escapeshellcmd($serendipity['convert'] . ' ' . $serendipity['imagemagick_thumb_parameters']) . ' -antialias -resize ' . serendipity_escapeshellarg($newSize) . ' ' . serendipity_escapeshellarg($infile) .' '. serendipity_escapeshellarg($outfile); + + $params = '-sampling-factor 4:2:0 -unsharp 0x0.75+0.75+0.008 -strip -quality 85'; + if (is_string($serendipity['imagemagick_thumb_parameters'])) { + // In s9y < 2.6, $serendipity['imagemagick_thumb_parameters'] was a string and the default + // value targeted jpgs. Users might have set variants of that in their local config, so + // we provide a backwards compatibly path here + $params = $serendipity['imagemagick_thumb_parameters']; + } else { + // In 2.6 $serendipity['imagemagick_thumb_parameters'] has values for different + // image formats + if (isset($serendipity['imagemagick_thumb_parameters'][$fdim['mime']])) { + $params = $serendipity['imagemagick_thumb_parameters'][$fdim['mime']]; + } + } + + $cmd = escapeshellcmd($serendipity['convert'] . ' ' . $params) . ' -antialias -resize ' . serendipity_escapeshellarg($newSize) . ' ' . serendipity_escapeshellarg($infile) .' '. serendipity_escapeshellarg($outfile); } exec($cmd, $output, $result); if ($result != 0) { @@ -1318,6 +1333,18 @@ function serendipity_functions_gd($infilename) { $func['save'] = 'imagejpeg'; $func['qual'] = 85; break; + + case 'avif': + $func['load'] = 'imagecreatefromavif'; + $func['save'] = 'imageavif'; + $func['qual'] = 60; + break; + + case 'webp': + $func['load'] = 'imagecreatefromwebp'; + $func['save'] = 'imagewebp'; + $func['qual'] = 90; + break; case 'png': $func['load'] = 'imagecreatefrompng'; diff --git a/serendipity_config.inc.php b/serendipity_config.inc.php index 94e90a350..a6ebe2715 100644 --- a/serendipity_config.inc.php +++ b/serendipity_config.inc.php @@ -503,7 +503,10 @@ // image quality when resizing. // // Set a variable like below in your serendpity_config_local.inc.php with your own settings - $serendipity['imagemagick_thumb_parameters'] = '-sampling-factor 4:2:0 -unsharp 0x0.75+0.75+0.008 -strip -quality 85 -interlace JPEG'; + $serendipity['imagemagick_thumb_parameters'] = [ 'image/jpeg' => '-sampling-factor 4:2:0 -unsharp 0x0.75+0.75+0.008 -strip -quality 85 -interlace JPEG', + 'image/avif' => '-sampling-factor 4:2:0 -unsharp 0x0.75+0.75+0.008 -strip -quality 60', + 'image/webp' => '-sampling-factor 4:2:0 -unsharp 0x0.75+0.75+0.008 -strip -quality 90' + ]; } serendipity_plugin_api::hook_event('frontend_configure', $serendipity); diff --git a/test.avif b/test.avif new file mode 100644 index 0000000000000000000000000000000000000000..4d3e6db256f748b29f5a7b73942d8f32ef8de87f GIT binary patch literal 13235 zcmXwfV~{93)9l)|ZQHhO+qP}nwr!rZ_pEK(<~`4Q>zh=iyQh+x$)BV$2><{9j+u+6 zgQ1(H8NfgL4{a^Y7;P;L|I-(?rY?s6`TrTAg^7*R|EB-|4wl9)|HuCi;T$YoZ2unxz<=$Z0mA)%1OQ+v{U?bnE$#jn^nYH|f5H^#f5ZMugMslsYGvu* z1ONa?<6pdl ze+0q7(!=sU4=@A-#6Li{bg=!uCH>0_1TY8~SO`oh zriclEVHk!2+Y*NC9qMWgQx{c-mjf-6QhHX@ zg^$Cz!}LGpVIz*Z#fx3mhnkxsHn8_}#*}k2eY_Wqz`SUSf7TwwM z`$q+m&sxd~9R-3PBBcq_vTK5|^+NM8HF!UFLgod1VG|Tcjg1FRMY`U8lXRurs#p%W zxj4h5KZ&Zd&W)~#?U%D5RgtojjF2!-rY-cPDS~C%TAR3!mf&d>o*1n*5va`2-OqBb zx0|I(#cyB`Jqwc*lNl+=VXrIQ6IlJ^EGQ(*TSzvDRO88BTi)<3NFzle^Cu@h7G?^T zB&^%`mFEK-+EYvTYQZI*5(}494M0^aV;3gf^7q;hHdG#4?#i-0(PvWzWj?_S?EKa; znaGs{RXRmkBl|@xxojfMWr;q1+b9Q>khqxqI>Ns2NUpjd=i7NAd=m$W7y*bsWATKWueLOEXRT{EBR^%0Nc9- znMhg@>il)af7quN%A)(gosw#IQY3y~C0`Ze6g!eox)Aneao$K3fX2v0qw4TuN4EDB zrpThhe(6z?-6KD;VCHD6oOztU&(^xi_3!vu;0|Tj_aWk@>BtoRH+s@$7E_*xXOQf? z9S2yFS5}5dP{fTi5VV!6KFyn@{9$&~G6dH80liG3FmA>{qwY${<}qj6jli60A)N!0()l?P-cFzVV{)UEw3U8+I+38sOowfn<+S@M;~_x-=JT` zw_3v>Nve72{L>E|p#0O-Y*1-I-^0XCjAw*Oy5*0E#ddUhcrTpV4dWOkTdIw){2Mao z@nMa1(#=vQ9_YoN%+IqSdSs9r7{gat((yoDs%Q!(5kb+I(OXJ%0aY~)%eh%P;!)Pu zYDu}wm@GOuP~_Mw@xPePE^c~bSAd6bf!9y6K%bd?bza{V95gxt=@ti!u!wf%b|wjW z*N3#zdIEpDj@uygXJ2UgFS(gKV`}t*4Kmo7Dgf%qkb_pf#?hBfV>H~N&ujFv76SEy z*ol=O^JmWX*Qa*g_zpT=IKQsXP?P#``W}DY1eBRcNHhjhSSb z1QJW4j>@oFB(ke}|6XJPzj9{<{WL0PdtxS~$B@#*n=pYu-BXyNb*W2AFr~iaD+N&S zKCfO_@gB1FpA$35Z4@l94a&(`+X60Q{hFYRua?1FBgEn+Vakg4kDFhI@kj7=JS z(bG&Ew>Ra+OwSq?CT2L4*~DazXD|!wRPeU^#Kt|h&%<_X0b>E;otO$mTIG+*G=uBY zA1>;UNxQxJb*r?251Se#Hx;frT87?r6u#cQUBmu$-#)TaLcQUk9P{sorj~s$RV9

F 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 OqMFtV(LD-kbN>${oM!a^ literal 0 HcmV?d00001 From 39615d5286448b33bb33367a7fb30021d21289a4 Mon Sep 17 00:00:00 2001 From: onli Date: Sat, 1 Mar 2025 23:31:24 +0100 Subject: [PATCH 2/2] Document change --- docs/NEWS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/NEWS b/docs/NEWS index 6486adc53..0db850117 100644 --- a/docs/NEWS +++ b/docs/NEWS @@ -1,6 +1,13 @@ Version 2.6-alpha1 () ------------------------------------------------------------------------ + * Enable .webp and .avif thumbnails also when using PHP's gd module + instead of imagemagick. Optimize imagemagick's thumbnail parameters, + for smaller filesizes for .webp and .avif images. + NOTE: Check the new structure in serendipity_config.inc.php if you + have set a custom value for imagemagick_thumb_parameters in your + local config file. + * PHP 8.4 fix: Remove deprecated constant E_STRICT * PHP 8 compatibility fixes for bundled XML/RPC.php