<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://fallout-wiki.com/index.php?action=history&amp;feed=atom&amp;title=Extension%3AVaultTecMediaOptimizer</id>
	<title>Extension:VaultTecMediaOptimizer - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://fallout-wiki.com/index.php?action=history&amp;feed=atom&amp;title=Extension%3AVaultTecMediaOptimizer"/>
	<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=Extension:VaultTecMediaOptimizer&amp;action=history"/>
	<updated>2026-06-06T21:05:18Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=Extension:VaultTecMediaOptimizer&amp;diff=205166&amp;oldid=prev</id>
		<title>2001:861:2C71:D6C0:4899:80FB:8729:B6EC le 6 juin 2026 à 10:46</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=Extension:VaultTecMediaOptimizer&amp;diff=205166&amp;oldid=prev"/>
		<updated>2026-06-06T10:46:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 6 juin 2026 à 12:46&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l30&quot;&gt;Ligne 30 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 30 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* WebP des miniatures &amp;#039;&amp;#039;&amp;#039;à la création&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;et&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;à la demande&amp;#039;&amp;#039;&amp;#039; au rendu (couvre les tailles déjà présentes sur le disque).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* WebP des miniatures &amp;#039;&amp;#039;&amp;#039;à la création&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;et&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;à la demande&amp;#039;&amp;#039;&amp;#039; au rendu (couvre les tailles déjà présentes sur le disque).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Optimisation des originaux : PNG, JPEG, et &amp;#039;&amp;#039;&amp;#039;GIF sans perte&amp;#039;&amp;#039;&amp;#039; via &amp;lt;code&amp;gt;gifsicle -O3&amp;lt;/code&amp;gt; (sûr pour l&amp;#039;animation).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Optimisation des originaux : PNG, JPEG, et &amp;#039;&amp;#039;&amp;#039;GIF sans perte&amp;#039;&amp;#039;&amp;#039; via &amp;lt;code&amp;gt;gifsicle -O3&amp;lt;/code&amp;gt; (sûr pour l&amp;#039;animation).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2{ème &lt;/del&gt;passe PNG&#039;&#039;&#039; sans perte optionnelle : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;, déportée dans un &#039;&#039;&#039;job d&#039;arrière-plan&#039;&#039;&#039; (aucune latence pour le visiteur).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2ème &lt;/ins&gt;passe PNG&#039;&#039;&#039; sans perte optionnelle : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;, déportée dans un &#039;&#039;&#039;job d&#039;arrière-plan&#039;&#039;&#039; (aucune latence pour le visiteur).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Moteur d&amp;#039;image sélectionnable&amp;#039;&amp;#039;&amp;#039; : &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; (Imagick → GD) ou &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips, bien plus rapide et léger à grande échelle).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Moteur d&amp;#039;image sélectionnable&amp;#039;&amp;#039;&amp;#039; : &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; (Imagick → GD) ou &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips, bien plus rapide et léger à grande échelle).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Mode gros wiki&amp;#039;&amp;#039;&amp;#039; : traitement en ligne de commande sans saturer la file de tâches.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Mode gros wiki&amp;#039;&amp;#039;&amp;#039; : traitement en ligne de commande sans saturer la file de tâches.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l60&quot;&gt;Ligne 60 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 60 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips) || Moteur d&amp;#039;image rapide/léger || &amp;lt;code&amp;gt;apt install libvips-tools&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips) || Moteur d&amp;#039;image rapide/léger || &amp;lt;code&amp;gt;apt install libvips-tools&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2{ème &lt;/del&gt;passe PNG (compression maximale) || paquet &amp;lt;code&amp;gt;zopfli&amp;lt;/code&amp;gt; ou binaire dédié&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2ème &lt;/ins&gt;passe PNG (compression maximale) || paquet &amp;lt;code&amp;gt;zopfli&amp;lt;/code&amp;gt; ou binaire dédié&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt; || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2{ème &lt;/del&gt;passe PNG (rapide, multi-thread) || binaire dédié&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt; || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2ème &lt;/ins&gt;passe PNG (rapide, multi-thread) || binaire dédié&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l93&quot;&gt;Ligne 93 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 93 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerGifsicleLevel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; || Niveau gifsicle (1–3 ; 3 = le plus agressif, sans perte).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerGifsicleLevel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; || Niveau gifsicle (1–3 ; 3 = le plus agressif, sans perte).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Active la &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2{ème &lt;/del&gt;passe PNG.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Active la &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2ème &lt;/ins&gt;passe PNG.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerPngEngine&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || Moteur &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2{ème &lt;/del&gt;passe : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerPngEngine&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || Moteur &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2ème &lt;/ins&gt;passe : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliIterations&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || Itérations zopflipng (plus = plus petit, plus lent).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliIterations&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || Itérations zopflipng (plus = plus petit, plus lent).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l148&quot;&gt;Ligne 148 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 148 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;purgeQueue.php&amp;lt;/code&amp;gt; || Vide les files de tâches de l&amp;#039;extension.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;purgeQueue.php&amp;lt;/code&amp;gt; || Vide les files de tâches de l&amp;#039;extension.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;recompressOriginals.php&amp;lt;/code&amp;gt; || Recompression PNG (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2{ème &lt;/del&gt;passe) des originaux existants.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;recompressOriginals.php&amp;lt;/code&amp;gt; || Recompression PNG (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2ème &lt;/ins&gt;passe) des originaux existants.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;repairBloatedOriginals.php&amp;lt;/code&amp;gt; || Répare des originaux qui auraient grossi.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;repairBloatedOriginals.php&amp;lt;/code&amp;gt; || Répare des originaux qui auraient grossi.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key admin_falloutwikidb:diff:1.41:old-205164:rev-205166:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>2001:861:2C71:D6C0:4899:80FB:8729:B6EC</name></author>
	</entry>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=Extension:VaultTecMediaOptimizer&amp;diff=205164&amp;oldid=prev</id>
		<title>Kims le 6 juin 2026 à 10:45</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=Extension:VaultTecMediaOptimizer&amp;diff=205164&amp;oldid=prev"/>
		<updated>2026-06-06T10:45:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 6 juin 2026 à 12:45&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;Ligne 13 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 13 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| dernière version = 1.8.4&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| dernière version = 1.8.4&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| licence          = GPL-2.0-or-later&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| licence          = GPL-2.0-or-later&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| download         = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{GithubDownload|generationfallout|vault&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tec&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;media&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;optimizer}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| download         = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https://github.com/GenerationFallout/Vault&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tec&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Media&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Optimizer&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| mediawiki        = ≥ 1.43&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| mediawiki        = ≥ 1.43&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| php              = ≥ 8.1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| php              = ≥ 8.1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l48&quot;&gt;Ligne 48 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 48 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Vérifier &amp;#039;&amp;#039;&amp;#039;[[Spécial:VaultTec_État]]&amp;#039;&amp;#039;&amp;#039; (tout au vert), puis lancer le rattrapage depuis &amp;#039;&amp;#039;&amp;#039;[[Spécial:VaultTec_Optimisation]]&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Vérifier &amp;#039;&amp;#039;&amp;#039;[[Spécial:VaultTec_État]]&amp;#039;&amp;#039;&amp;#039; (tout au vert), puis lancer le rattrapage depuis &amp;#039;&amp;#039;&amp;#039;[[Spécial:VaultTec_Optimisation]]&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Fait}} &lt;/del&gt;&#039;&#039;&#039;Terminé&#039;&#039;&#039; — Naviguer sur le wiki pour vérifier que tout fonctionne.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &#039;&#039;&#039;Terminé&#039;&#039;&#039; — Naviguer sur le wiki pour vérifier que tout fonctionne.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Dépendances externes (optionnelles) ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Dépendances externes (optionnelles) ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l56&quot;&gt;Ligne 56 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 56 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Binaire !! Apporte !! Installation&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Binaire !! Apporte !! Installation&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;gifsicle&amp;lt;/code&amp;gt; || Optimisation GIF sans perte (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1{{re}} &lt;/del&gt;passe) || &amp;lt;code&amp;gt;apt install gifsicle&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;gifsicle&amp;lt;/code&amp;gt; || Optimisation GIF sans perte (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1ère &lt;/ins&gt;passe) || &amp;lt;code&amp;gt;apt install gifsicle&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips) || Moteur d&amp;#039;image rapide/léger || &amp;lt;code&amp;gt;apt install libvips-tools&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips) || Moteur d&amp;#039;image rapide/léger || &amp;lt;code&amp;gt;apt install libvips-tools&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l65&quot;&gt;Ligne 65 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 65 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Remarque|&lt;/del&gt;Lancer ensuite les commandes de traitement &#039;&#039;&#039;avec le même utilisateur système que le serveur web&#039;&#039;&#039; (souvent &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;) pour éviter les problèmes de permissions sur les fichiers générés.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&lt;/del&gt;}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Lancer ensuite les commandes de traitement &#039;&#039;&#039;avec le même utilisateur système que le serveur web&#039;&#039;&#039; (souvent &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;) pour éviter les problèmes de permissions sur les fichiers générés.}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Configuration ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Configuration ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l144&quot;&gt;Ligne 144 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 144 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Script !! Rôle&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! Script !! Rôle&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;optimizeImages.php&amp;lt;/code&amp;gt; || Rattrapage en ligne de commande (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1{{re}} &lt;/del&gt;passe + WebP), sans la file. Option &amp;lt;code&amp;gt;--format=gif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--dry-run&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--force&amp;lt;/code&amp;gt;…&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;optimizeImages.php&amp;lt;/code&amp;gt; || Rattrapage en ligne de commande (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1ère &lt;/ins&gt;passe + WebP), sans la file. Option &amp;lt;code&amp;gt;--format=gif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--dry-run&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--force&amp;lt;/code&amp;gt;…&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;purgeQueue.php&amp;lt;/code&amp;gt; || Vide les files de tâches de l&amp;#039;extension.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;purgeQueue.php&amp;lt;/code&amp;gt; || Vide les files de tâches de l&amp;#039;extension.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key admin_falloutwikidb:diff:1.41:old-205163:rev-205164:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Kims</name></author>
	</entry>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=Extension:VaultTecMediaOptimizer&amp;diff=205163&amp;oldid=prev</id>
		<title>Kims le 6 juin 2026 à 10:44</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=Extension:VaultTecMediaOptimizer&amp;diff=205163&amp;oldid=prev"/>
		<updated>2026-06-06T10:44:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 6 juin 2026 à 12:44&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Extension&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Infobox_Extension&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| nom              = Vault-Tec Media Optimizer&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| nom              = Vault-Tec Media Optimizer&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| état             = stable&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| état             = stable&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l30&quot;&gt;Ligne 30 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 30 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* WebP des miniatures &amp;#039;&amp;#039;&amp;#039;à la création&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;et&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;à la demande&amp;#039;&amp;#039;&amp;#039; au rendu (couvre les tailles déjà présentes sur le disque).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* WebP des miniatures &amp;#039;&amp;#039;&amp;#039;à la création&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;et&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;à la demande&amp;#039;&amp;#039;&amp;#039; au rendu (couvre les tailles déjà présentes sur le disque).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Optimisation des originaux : PNG, JPEG, et &amp;#039;&amp;#039;&amp;#039;GIF sans perte&amp;#039;&amp;#039;&amp;#039; via &amp;lt;code&amp;gt;gifsicle -O3&amp;lt;/code&amp;gt; (sûr pour l&amp;#039;animation).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Optimisation des originaux : PNG, JPEG, et &amp;#039;&amp;#039;&amp;#039;GIF sans perte&amp;#039;&amp;#039;&amp;#039; via &amp;lt;code&amp;gt;gifsicle -O3&amp;lt;/code&amp;gt; (sûr pour l&amp;#039;animation).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;2{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{e}} &lt;/del&gt;passe PNG&#039;&#039;&#039; sans perte optionnelle : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;, déportée dans un &#039;&#039;&#039;job d&#039;arrière-plan&#039;&#039;&#039; (aucune latence pour le visiteur).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;2{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ème &lt;/ins&gt;passe PNG&#039;&#039;&#039; sans perte optionnelle : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;, déportée dans un &#039;&#039;&#039;job d&#039;arrière-plan&#039;&#039;&#039; (aucune latence pour le visiteur).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Moteur d&amp;#039;image sélectionnable&amp;#039;&amp;#039;&amp;#039; : &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; (Imagick → GD) ou &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips, bien plus rapide et léger à grande échelle).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Moteur d&amp;#039;image sélectionnable&amp;#039;&amp;#039;&amp;#039; : &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; (Imagick → GD) ou &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips, bien plus rapide et léger à grande échelle).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Mode gros wiki&amp;#039;&amp;#039;&amp;#039; : traitement en ligne de commande sans saturer la file de tâches.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Mode gros wiki&amp;#039;&amp;#039;&amp;#039; : traitement en ligne de commande sans saturer la file de tâches.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l60&quot;&gt;Ligne 60 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 60 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips) || Moteur d&amp;#039;image rapide/léger || &amp;lt;code&amp;gt;apt install libvips-tools&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips) || Moteur d&amp;#039;image rapide/léger || &amp;lt;code&amp;gt;apt install libvips-tools&amp;lt;/code&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || 2{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{e}} &lt;/del&gt;passe PNG (compression maximale) || paquet &amp;lt;code&amp;gt;zopfli&amp;lt;/code&amp;gt; ou binaire dédié&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || 2{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ème &lt;/ins&gt;passe PNG (compression maximale) || paquet &amp;lt;code&amp;gt;zopfli&amp;lt;/code&amp;gt; ou binaire dédié&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt; || 2{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{e}} &lt;/del&gt;passe PNG (rapide, multi-thread) || binaire dédié&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt; || 2{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ème &lt;/ins&gt;passe PNG (rapide, multi-thread) || binaire dédié&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l93&quot;&gt;Ligne 93 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 93 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerGifsicleLevel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; || Niveau gifsicle (1–3 ; 3 = le plus agressif, sans perte).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerGifsicleLevel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; || Niveau gifsicle (1–3 ; 3 = le plus agressif, sans perte).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Active la 2{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{e}} &lt;/del&gt;passe PNG.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Active la 2{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ème &lt;/ins&gt;passe PNG.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerPngEngine&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || Moteur 2{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{e}} &lt;/del&gt;passe : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerPngEngine&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || Moteur 2{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ème &lt;/ins&gt;passe : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliIterations&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || Itérations zopflipng (plus = plus petit, plus lent).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliIterations&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || Itérations zopflipng (plus = plus petit, plus lent).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l148&quot;&gt;Ligne 148 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 148 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;purgeQueue.php&amp;lt;/code&amp;gt; || Vide les files de tâches de l&amp;#039;extension.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;purgeQueue.php&amp;lt;/code&amp;gt; || Vide les files de tâches de l&amp;#039;extension.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;recompressOriginals.php&amp;lt;/code&amp;gt; || Recompression PNG (2{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{e}} &lt;/del&gt;passe) des originaux existants.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;recompressOriginals.php&amp;lt;/code&amp;gt; || Recompression PNG (2{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ème &lt;/ins&gt;passe) des originaux existants.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;repairBloatedOriginals.php&amp;lt;/code&amp;gt; || Répare des originaux qui auraient grossi.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;repairBloatedOriginals.php&amp;lt;/code&amp;gt; || Répare des originaux qui auraient grossi.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key admin_falloutwikidb:diff:1.41:old-204873:rev-205163:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Kims</name></author>
	</entry>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=Extension:VaultTecMediaOptimizer&amp;diff=204873&amp;oldid=prev</id>
		<title>Kims : Page créée avec « {{Extension | nom              = Vault-Tec Media Optimizer | état             = stable | type1            = média | type2            = page spéciale | hook1            = UploadComplete | hook2            = FileUpload | hook3            = FileTransformed | hook4            = FileDeleteComplete | hook5            = OutputPageBeforeHTML | description      = Optimisation d&#039;images sans perte et diffusion automatique de WebP (et AVIF expérimental) via une balise {{... »</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=Extension:VaultTecMediaOptimizer&amp;diff=204873&amp;oldid=prev"/>
		<updated>2026-06-06T09:33:29Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « {{Extension | nom              = Vault-Tec Media Optimizer | état             = stable | type1            = média | type2            = page spéciale | hook1            = UploadComplete | hook2            = FileUpload | hook3            = FileTransformed | hook4            = FileDeleteComplete | hook5            = OutputPageBeforeHTML | description      = Optimisation d&amp;#039;images sans perte et diffusion automatique de WebP (et AVIF expérimental) via une balise {{... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Extension&lt;br /&gt;
| nom              = Vault-Tec Media Optimizer&lt;br /&gt;
| état             = stable&lt;br /&gt;
| type1            = média&lt;br /&gt;
| type2            = page spéciale&lt;br /&gt;
| hook1            = UploadComplete&lt;br /&gt;
| hook2            = FileUpload&lt;br /&gt;
| hook3            = FileTransformed&lt;br /&gt;
| hook4            = FileDeleteComplete&lt;br /&gt;
| hook5            = OutputPageBeforeHTML&lt;br /&gt;
| description      = Optimisation d&amp;#039;images sans perte et diffusion automatique de WebP (et AVIF expérimental) via une balise {{tag|picture}}.&lt;br /&gt;
| auteur           = Archives de Vault-Tec&lt;br /&gt;
| dernière version = 1.8.4&lt;br /&gt;
| licence          = GPL-2.0-or-later&lt;br /&gt;
| download         = {{GithubDownload|generationfallout|vault-tec-media-optimizer}}&lt;br /&gt;
| mediawiki        = ≥ 1.43&lt;br /&gt;
| php              = ≥ 8.1&lt;br /&gt;
| exemple          = https://fallout-wiki.com&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;extension &amp;#039;&amp;#039;&amp;#039;Vault-Tec Media Optimizer&amp;#039;&amp;#039;&amp;#039; (VTMO) allège les médias du wiki de deux façons complémentaires :&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Optimisation sans perte&amp;#039;&amp;#039;&amp;#039; des fichiers d&amp;#039;origine (PNG, JPEG, et GIF via &amp;lt;code&amp;gt;gifsicle&amp;lt;/code&amp;gt;) — les pixels restent identiques, seul le poids disque baisse.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Génération de WebP&amp;#039;&amp;#039;&amp;#039; (et d&amp;#039;&amp;#039;&amp;#039;&amp;#039;AVIF&amp;#039;&amp;#039;&amp;#039; en option expérimentale) servis automatiquement aux navigateurs compatibles via une balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;picture&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, avec repli intégral sur l&amp;#039;image d&amp;#039;origine. C&amp;#039;est le vrai gain : &amp;#039;&amp;#039;&amp;#039;bande passante&amp;#039;&amp;#039;&amp;#039; et rapidité pour les visiteurs.&lt;br /&gt;
&lt;br /&gt;
Les nouveaux fichiers sont traités automatiquement à l&amp;#039;envoi ; un &amp;#039;&amp;#039;&amp;#039;rattrapage&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;backfill&amp;#039;&amp;#039;) traite l&amp;#039;existant, via la file de tâches &amp;#039;&amp;#039;&amp;#039;ou&amp;#039;&amp;#039;&amp;#039; en ligne de commande. Tout tourne sur le serveur, sans aucune dépendance cloud.&lt;br /&gt;
&lt;br /&gt;
== Fonctionnalités ==&lt;br /&gt;
* WebP servi via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;picture&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (avec &amp;lt;code&amp;gt;srcset&amp;lt;/code&amp;gt; Retina), repli intact sur l&amp;#039;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;img&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; d&amp;#039;origine.&lt;br /&gt;
* WebP des miniatures &amp;#039;&amp;#039;&amp;#039;à la création&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;et&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;à la demande&amp;#039;&amp;#039;&amp;#039; au rendu (couvre les tailles déjà présentes sur le disque).&lt;br /&gt;
* Optimisation des originaux : PNG, JPEG, et &amp;#039;&amp;#039;&amp;#039;GIF sans perte&amp;#039;&amp;#039;&amp;#039; via &amp;lt;code&amp;gt;gifsicle -O3&amp;lt;/code&amp;gt; (sûr pour l&amp;#039;animation).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;2{{e}} passe PNG&amp;#039;&amp;#039;&amp;#039; sans perte optionnelle : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;, déportée dans un &amp;#039;&amp;#039;&amp;#039;job d&amp;#039;arrière-plan&amp;#039;&amp;#039;&amp;#039; (aucune latence pour le visiteur).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Moteur d&amp;#039;image sélectionnable&amp;#039;&amp;#039;&amp;#039; : &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; (Imagick → GD) ou &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips, bien plus rapide et léger à grande échelle).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Mode gros wiki&amp;#039;&amp;#039;&amp;#039; : traitement en ligne de commande sans saturer la file de tâches.&lt;br /&gt;
* Écritures &amp;#039;&amp;#039;&amp;#039;atomiques&amp;#039;&amp;#039;&amp;#039; (fichier temporaire + &amp;#039;&amp;#039;rename&amp;#039;&amp;#039;) : aucun fichier dérivé tronqué n&amp;#039;est jamais servi, même sous forte concurrence.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;AVIF expérimental&amp;#039;&amp;#039;&amp;#039; (branche dédiée) avec garde « keep-if-smaller » : l&amp;#039;AVIF n&amp;#039;est servi que s&amp;#039;il est plus léger que le WebP.&lt;br /&gt;
* Trois pages spéciales (diagnostic, rattrapage, statistiques) pour piloter le tout.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
# [https://github.com/generationfallout/vault-tec-media-optimizer Télécharger] et placer le dossier &amp;lt;code&amp;gt;VaultTecMediaOptimizer&amp;lt;/code&amp;gt; dans le répertoire &amp;lt;code&amp;gt;extensions/&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Ajouter le code suivant au bas de &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &amp;#039;VaultTecMediaOptimizer&amp;#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Exécuter le script de mise à jour pour créer les tables :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php maintenance/run.php update --quick&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Vérifier &amp;#039;&amp;#039;&amp;#039;[[Spécial:VaultTec_État]]&amp;#039;&amp;#039;&amp;#039; (tout au vert), puis lancer le rattrapage depuis &amp;#039;&amp;#039;&amp;#039;[[Spécial:VaultTec_Optimisation]]&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# {{Fait}} &amp;#039;&amp;#039;&amp;#039;Terminé&amp;#039;&amp;#039;&amp;#039; — Naviguer sur le wiki pour vérifier que tout fonctionne.&lt;br /&gt;
&lt;br /&gt;
== Dépendances externes (optionnelles) ==&lt;br /&gt;
Aucune n&amp;#039;est obligatoire ; chacune débloque une capacité supplémentaire. Sous Debian/Ubuntu :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Binaire !! Apporte !! Installation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gifsicle&amp;lt;/code&amp;gt; || Optimisation GIF sans perte (1{{re}} passe) || &amp;lt;code&amp;gt;apt install gifsicle&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips) || Moteur d&amp;#039;image rapide/léger || &amp;lt;code&amp;gt;apt install libvips-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || 2{{e}} passe PNG (compression maximale) || paquet &amp;lt;code&amp;gt;zopfli&amp;lt;/code&amp;gt; ou binaire dédié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt; || 2{{e}} passe PNG (rapide, multi-thread) || binaire dédié&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Remarque|Lancer ensuite les commandes de traitement &amp;#039;&amp;#039;&amp;#039;avec le même utilisateur système que le serveur web&amp;#039;&amp;#039;&amp;#039; (souvent &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;) pour éviter les problèmes de permissions sur les fichiers générés.}}&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Toutes les variables sont optionnelles et ont une valeur par défaut sûre.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Défaut !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Active/désactive l&amp;#039;extension.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerFormats&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;png, jpeg, gif&amp;lt;/code&amp;gt; || Types MIME traités.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerOptimizeOriginals&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Optimise les originaux sur place (sans perte).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerImageEngine&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; || Moteur d&amp;#039;image : &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; (Imagick→GD) ou &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerVipsBinary&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; || Chemin/nom du binaire libvips.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerWebPQuality&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; || Qualité WebP (JPEG/GIF lossy).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerWebPLosslessForPng&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || WebP sans perte pour les PNG.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerWebPDirectory&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;images_webp&amp;lt;/code&amp;gt; || Dossier des WebP (frère de &amp;lt;code&amp;gt;images/&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerGifsicleEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Active l&amp;#039;optimisation GIF via &amp;lt;code&amp;gt;gifsicle&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerGifsicleLevel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; || Niveau gifsicle (1–3 ; 3 = le plus agressif, sans perte).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Active la 2{{e}} passe PNG.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerPngEngine&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || Moteur 2{{e}} passe : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliIterations&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || Itérations zopflipng (plus = plus petit, plus lent).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerStripMetadata&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Retire les métadonnées à l&amp;#039;optimisation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerProcessThumbnails&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Génère le WebP des miniatures.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerOnDemandThumbLimit&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; || Budget de miniatures traitées à la demande par rendu.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerUseJobQueue&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Traitement via la file de tâches (mettre à &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; en mode gros wiki).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerMaxFileSize&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;52428800&amp;lt;/code&amp;gt; || Taille max traitée (octets, 50 Mo).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerBackfillBatchSize&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || Taille de lot du rattrapage.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Exemple : configuration « performance » ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &amp;#039;VaultTecMediaOptimizer&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
// Moteur rapide&lt;br /&gt;
$wgVaultTecMediaOptimizerImageEngine = &amp;#039;vips&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
// GIF sans perte&lt;br /&gt;
$wgVaultTecMediaOptimizerGifsicleEnabled = true;&lt;br /&gt;
&lt;br /&gt;
// 2e passe PNG maximale (sans perte) — déportée en job&lt;br /&gt;
$wgVaultTecMediaOptimizerZopfliEnabled = true;&lt;br /&gt;
$wgVaultTecMediaOptimizerPngEngine     = &amp;#039;zopflipng&amp;#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pages spéciales ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Page !! Alias français !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Special:VTMOStatus&amp;lt;/code&amp;gt; || [[Spécial:VaultTec_État]] || Diagnostic : dépendances, moteur actif, espace disque.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Special:VTMOBackfill&amp;lt;/code&amp;gt; || [[Spécial:VaultTec_Optimisation]] || Rattrapage des fichiers existants.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Special:VTMOStats&amp;lt;/code&amp;gt; || [[Spécial:VaultTec_Statistiques]] || Statistiques et fichiers en échec.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Scripts de maintenance ==&lt;br /&gt;
À lancer via &amp;lt;code&amp;gt;maintenance/run.php&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Script !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;optimizeImages.php&amp;lt;/code&amp;gt; || Rattrapage en ligne de commande (1{{re}} passe + WebP), sans la file. Option &amp;lt;code&amp;gt;--format=gif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--dry-run&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--force&amp;lt;/code&amp;gt;…&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;purgeQueue.php&amp;lt;/code&amp;gt; || Vide les files de tâches de l&amp;#039;extension.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;recompressOriginals.php&amp;lt;/code&amp;gt; || Recompression PNG (2{{e}} passe) des originaux existants.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repairBloatedOriginals.php&amp;lt;/code&amp;gt; || Répare des originaux qui auraient grossi.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repairCorruptedFilenames.php&amp;lt;/code&amp;gt; || Répare les originaux dont le nom de fichier sur le disque a dérivé de celui en base (mojibake de migration).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Exemple&amp;#039;&amp;#039;&amp;#039; — ne traiter (sans perte) que les GIF existants :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php maintenance/run.php \&lt;br /&gt;
  extensions/VaultTecMediaOptimizer/maintenance/optimizeImages.php --format=gif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement ==&lt;br /&gt;
# À l&amp;#039;envoi d&amp;#039;un fichier, un &amp;#039;&amp;#039;&amp;#039;job d&amp;#039;arrière-plan&amp;#039;&amp;#039;&amp;#039; optimise l&amp;#039;original et génère le WebP (le rendu de page n&amp;#039;attend jamais ce travail).&lt;br /&gt;
# Au rendu d&amp;#039;une page, l&amp;#039;extension réécrit les &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;img&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;picture&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; : le navigateur reçoit le WebP/AVIF s&amp;#039;il existe sur le disque, sinon l&amp;#039;image d&amp;#039;origine.&lt;br /&gt;
# Le service est décidé par la &amp;#039;&amp;#039;&amp;#039;présence du fichier dérivé sur le disque&amp;#039;&amp;#039;&amp;#039; : aucune image figée/tronquée n&amp;#039;est jamais servie. Un GIF animé que le moteur ne peut pas encoder en WebP reste servi en GIF animé.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
* MediaWiki &amp;#039;&amp;#039;&amp;#039;≥ 1.43&amp;#039;&amp;#039;&amp;#039;, PHP &amp;#039;&amp;#039;&amp;#039;≥ 8.1&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Compatible avec &amp;#039;&amp;#039;&amp;#039;MultimediaViewer&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;MediaUploader&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;TimedMediaHandler&amp;#039;&amp;#039;&amp;#039; et &amp;#039;&amp;#039;&amp;#039;PageImages&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Repli automatique et gracieux : si une dépendance optionnelle manque, la capacité correspondante est simplement sautée.&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [https://github.com/generationfallout/vault-tec-media-optimizer Dépôt GitHub] (code, manuel PDF bilingue, benchmarks honnêtes, journal des modifications).&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Extensions]]&lt;/div&gt;</summary>
		<author><name>Kims</name></author>
	</entry>
</feed>