pagination curseur, layout 3 colonnes article, sidebar fixe

This commit is contained in:
Cedric Abonnel
2026-05-12 00:42:51 +02:00
parent d774042be9
commit be09fad48f
91 changed files with 8152 additions and 816 deletions
@@ -0,0 +1,97 @@
<svg width="100%" viewBox="0 0 680 520" role="img" xmlns="http://www.w3.org/2000/svg" style="">
<title style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">ImageMagick sur Debian : convert-im6, magick, et leur lien avec les binaires sous-jacents</title>
<desc style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">Schéma illustrant comment les commandes convert et magick sont des symlinks vers les binaires versionnés convert-im6.q16 et magick-im7.q16 sur Debian.</desc>
<defs>
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M2 1L8 5L2 9" fill="none" stroke="context-stroke" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></marker>
</defs>
<text x="340" y="36" text-anchor="middle" font-size="16" style="fill:rgb(20, 20, 19);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">ImageMagick sur Debian</text>
<text x="340" y="56" text-anchor="middle" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Ce que tu tapes, ce que le système exécute</text>
<rect x="40" y="90" width="290" height="180" rx="8" fill="none" stroke="var(--color-border-tertiary)" stroke-width="0.5" stroke-dasharray="4 3" style="fill:none;stroke:rgba(31, 30, 29, 0.15);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-dasharray:4px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="60" y="112" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto">Debian 11 / 12 (bookworm)</text>
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="80" y="130" width="120" height="44" rx="8" style="fill:rgb(230, 241, 251);stroke:rgb(24, 95, 165);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="140" y="152" text-anchor="middle" style="fill:rgb(12, 68, 124);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">convert</text>
<text x="140" y="168" text-anchor="middle" style="fill:rgb(24, 95, 165);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">tu tapes</text>
</g>
<line x1="200" y1="152" x2="240" y2="152" stroke="var(--color-text-tertiary)" stroke-width="0.5" marker-end="url(#arrow)" stroke-dasharray="3 2" style="fill:none;stroke:rgb(115, 114, 108);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-dasharray:3px, 2px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="240" y="130" width="70" height="44" rx="8" style="fill:rgb(241, 239, 232);stroke:rgb(95, 94, 90);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="275" y="148" text-anchor="middle" style="fill:rgb(68, 68, 65);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:400;text-anchor:middle;dominant-baseline:auto">indispo</text>
<text x="275" y="162" text-anchor="middle" style="fill:rgb(95, 94, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">par défaut</text>
</g>
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="80" y="200" width="120" height="44" rx="8" style="fill:rgb(230, 241, 251);stroke:rgb(24, 95, 165);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="140" y="222" text-anchor="middle" style="fill:rgb(12, 68, 124);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">convert-im6</text>
<text x="140" y="238" text-anchor="middle" style="fill:rgb(24, 95, 165);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">tu tapes</text>
</g>
<line x1="200" y1="222" x2="240" y2="222" stroke="var(--color-text-secondary)" stroke-width="0.5" marker-end="url(#arrow)" style="fill:none;stroke:rgb(115, 114, 108);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="240" y="200" width="80" height="44" rx="8" style="fill:rgb(225, 245, 238);stroke:rgb(15, 110, 86);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="280" y="220" text-anchor="middle" style="fill:rgb(8, 80, 65);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">IM 6</text>
<text x="280" y="234" text-anchor="middle" style="fill:rgb(15, 110, 86);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">.q16</text>
</g>
<rect x="350" y="90" width="290" height="180" rx="8" fill="none" stroke="var(--color-border-tertiary)" stroke-width="0.5" stroke-dasharray="4 3" style="fill:none;stroke:rgba(31, 30, 29, 0.15);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-dasharray:4px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="370" y="112" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto">Debian 13 (trixie)</text>
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="380" y="130" width="120" height="44" rx="8" style="fill:rgb(230, 241, 251);stroke:rgb(24, 95, 165);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="440" y="152" text-anchor="middle" style="fill:rgb(12, 68, 124);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">convert</text>
<text x="440" y="168" text-anchor="middle" style="fill:rgb(24, 95, 165);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">symlink</text>
</g>
<line x1="500" y1="152" x2="540" y2="152" stroke="var(--color-text-secondary)" stroke-width="0.5" marker-end="url(#arrow)" style="fill:none;stroke:rgb(115, 114, 108);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="540" y="130" width="80" height="44" rx="8" style="fill:rgb(250, 238, 218);stroke:rgb(133, 79, 11);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="580" y="150" text-anchor="middle" style="fill:rgb(99, 56, 6);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">IM 7</text>
<text x="580" y="164" text-anchor="middle" style="fill:rgb(133, 79, 11);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">.q16</text>
</g>
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="380" y="200" width="120" height="44" rx="8" style="fill:rgb(230, 241, 251);stroke:rgb(24, 95, 165);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="440" y="222" text-anchor="middle" style="fill:rgb(12, 68, 124);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">magick</text>
<text x="440" y="238" text-anchor="middle" style="fill:rgb(24, 95, 165);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">recommandé</text>
</g>
<line x1="500" y1="222" x2="540" y2="222" stroke="var(--color-text-secondary)" stroke-width="0.5" marker-end="url(#arrow)" style="fill:none;stroke:rgb(115, 114, 108);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="540" y="200" width="80" height="44" rx="8" style="fill:rgb(250, 238, 218);stroke:rgb(133, 79, 11);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="580" y="220" text-anchor="middle" style="fill:rgb(99, 56, 6);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">IM 7</text>
<text x="580" y="234" text-anchor="middle" style="fill:rgb(133, 79, 11);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">.q16</text>
</g>
<text x="340" y="310" text-anchor="middle" style="fill:rgb(20, 20, 19);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">Pourquoi ce renommage ?</text>
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="100" y="335" width="200" height="80" rx="8" style="fill:rgb(225, 245, 238);stroke:rgb(15, 110, 86);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="200" y="362" text-anchor="middle" style="fill:rgb(8, 80, 65);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">ImageMagick 6</text>
<text x="200" y="382" text-anchor="middle" style="fill:rgb(15, 110, 86);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">convert, identify,</text>
<text x="200" y="398" text-anchor="middle" style="fill:rgb(15, 110, 86);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">mogrify, composite</text>
</g>
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="380" y="335" width="200" height="80" rx="8" style="fill:rgb(250, 238, 218);stroke:rgb(133, 79, 11);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="480" y="362" text-anchor="middle" style="fill:rgb(99, 56, 6);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">ImageMagick 7</text>
<text x="480" y="382" text-anchor="middle" style="fill:rgb(133, 79, 11);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">magick</text>
<text x="480" y="398" text-anchor="middle" style="fill:rgb(133, 79, 11);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">(commande unique)</text>
</g>
<text x="340" y="365" text-anchor="middle" style="fill:rgb(20, 20, 19);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:400;text-anchor:middle;dominant-baseline:auto">+</text>
<text x="340" y="385" text-anchor="middle" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">noms en</text>
<text x="340" y="400" text-anchor="middle" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">conflit</text>
<rect x="100" y="445" width="480" height="50" rx="8" fill="var(--color-background-secondary)" stroke="var(--color-border-tertiary)" stroke-width="0.5" style="fill:rgb(245, 244, 237);stroke:rgba(31, 30, 29, 0.15);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="340" y="467" text-anchor="middle" style="fill:rgb(20, 20, 19);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:14px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Solution Debian : suffixer chaque binaire</text>
<text x="340" y="484" text-anchor="middle" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">convert-im6.q16 / magick-im7.q16 → cohabitation possible</text>
</svg>

After

Width:  |  Height:  |  Size: 23 KiB

@@ -0,0 +1,115 @@
<svg width="100%" viewBox="0 0 690 490" role="img" xmlns="http://www.w3.org/2000/svg" style="">
<title style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">magick : la commande unifiée d'ImageMagick 7</title>
<desc style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">Illustration représentant la commande magick comme une baguette magique transformant une image source en plusieurs formats.</desc>
<defs>
<radialGradient id="bgGlow" cx="50%" cy="45%" r="60%">
<stop offset="0%" stop-color="#2a1f4d"/>
<stop offset="60%" stop-color="#1a1530"/>
<stop offset="100%" stop-color="#0f0b1f"/>
</radialGradient>
<radialGradient id="starGlow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#ffe89a" stop-opacity="1"/>
<stop offset="40%" stop-color="#f4a949" stop-opacity="0.8"/>
<stop offset="100%" stop-color="#f4a949" stop-opacity="0"/>
</radialGradient>
<linearGradient id="wand" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#3d2a5c"/>
<stop offset="50%" stop-color="#5a3d7a"/>
<stop offset="100%" stop-color="#2a1a3d"/>
</linearGradient>
<linearGradient id="wandTip" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#f4d489"/>
<stop offset="100%" stop-color="#c89149"/>
</linearGradient>
</defs>
<rect x="0" y="0" width="680" height="480" fill="url(#bgGlow)" style="stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<g opacity="0.6" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.6;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<circle cx="60" cy="80" r="1" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="140" cy="50" r="0.8" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="220" cy="100" r="1.2" fill="#fff4d4" style="fill:rgb(255, 244, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="580" cy="60" r="1" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="620" cy="120" r="0.8" fill="#fff4d4" style="fill:rgb(255, 244, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="80" cy="380" r="1" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="600" cy="400" r="1.2" fill="#fff4d4" style="fill:rgb(255, 244, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="40" cy="240" r="0.8" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="640" cy="280" r="1" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="180" cy="420" r="0.8" fill="#fff4d4" style="fill:rgb(255, 244, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="500" cy="440" r="1" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
</g>
<g transform="translate(120, 200)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="0" y="0" width="140" height="100" rx="6" fill="#3d2a5c" stroke="#7a5fa3" stroke-width="1.5" style="fill:rgb(61, 42, 92);stroke:rgb(122, 95, 163);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<rect x="6" y="6" width="128" height="88" rx="3" fill="#1a1530" style="fill:rgb(26, 21, 48);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="50" cy="40" r="14" fill="#f4a949" opacity="0.9" style="fill:rgb(244, 169, 73);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.9;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<path d="M 6 80 L 40 55 L 70 70 L 100 45 L 134 65 L 134 94 L 6 94 Z" fill="#5a3d7a" style="fill:rgb(90, 61, 122);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<path d="M 6 85 L 50 70 L 90 80 L 134 75 L 134 94 L 6 94 Z" fill="#7a5fa3" style="fill:rgb(122, 95, 163);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="70" y="115" text-anchor="middle" fill="#a08fc4" font-family="ui-monospace, monospace" font-size="11" style="fill:rgb(160, 143, 196);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:11px;font-weight:400;text-anchor:middle;dominant-baseline:auto">photo.jpg</text>
</g>
<g transform="translate(280, 230)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<line x1="0" y1="0" x2="120" y2="0" stroke="url(#wand)" stroke-width="8" stroke-linecap="round" style="fill:rgb(0, 0, 0);color:rgb(0, 0, 0);stroke-width:8px;stroke-linecap:round;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<line x1="0" y1="0" x2="120" y2="0" stroke="#8a6dad" stroke-width="2" stroke-linecap="round" opacity="0.5" style="fill:rgb(0, 0, 0);stroke:rgb(138, 109, 173);color:rgb(0, 0, 0);stroke-width:2px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.5;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<g transform="translate(130, 0)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<circle cx="0" cy="0" r="35" fill="url(#starGlow)" opacity="0.7" style="stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.7;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="0" cy="0" r="22" fill="url(#starGlow)" style="stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<path d="M 0 -16 L 4 -4 L 16 0 L 4 4 L 0 16 L -4 4 L -16 0 L -4 -4 Z" fill="#fff4d4" style="fill:rgb(255, 244, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<path d="M 0 -10 L 2.5 -2.5 L 10 0 L 2.5 2.5 L 0 10 L -2.5 2.5 L -10 0 L -2.5 -2.5 Z" fill="#ffffff" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
</g>
</g>
<g fill="#ffe89a" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<circle cx="155" cy="-25" r="2" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="170" cy="-10" r="1.5" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="175" cy="15" r="2" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="160" cy="30" r="1.5" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="145" cy="-35" r="1.2" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="190" cy="0" r="1.8" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<circle cx="180" cy="-25" r="1" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
</g>
<g stroke="#ffe89a" stroke-width="1.5" stroke-linecap="round" opacity="0.7" fill="none" style="fill:none;stroke:rgb(255, 232, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.7;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<path d="M 150 -15 L 153 -22" style="fill:none;stroke:rgb(255, 232, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<path d="M 165 -5 L 172 -8" style="fill:none;stroke:rgb(255, 232, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<path d="M 165 12 L 173 18" style="fill:none;stroke:rgb(255, 232, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<path d="M 150 22 L 152 30" style="fill:none;stroke:rgb(255, 232, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
</g>
</g>
<g transform="translate(460, 130)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="0" y="0" width="100" height="50" rx="5" fill="#2d4a3d" stroke="#7fb069" stroke-width="1.5" style="fill:rgb(45, 74, 61);stroke:rgb(127, 176, 105);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="50" y="22" text-anchor="middle" fill="#7fb069" font-family="ui-monospace, monospace" font-size="11" font-weight="500" style="fill:rgb(127, 176, 105);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">PNG</text>
<text x="50" y="38" text-anchor="middle" fill="#a8d089" font-family="ui-monospace, monospace" font-size="9" style="fill:rgb(168, 208, 137);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:9px;font-weight:400;text-anchor:middle;dominant-baseline:auto">photo.png</text>
</g>
<g transform="translate(460, 215)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="0" y="0" width="100" height="50" rx="5" fill="#4a3d2a" stroke="#e8b059" stroke-width="1.5" style="fill:rgb(74, 61, 42);stroke:rgb(232, 176, 89);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="50" y="22" text-anchor="middle" fill="#e8b059" font-family="ui-monospace, monospace" font-size="11" font-weight="500" style="fill:rgb(232, 176, 89);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">WEBP</text>
<text x="50" y="38" text-anchor="middle" fill="#f4d489" font-family="ui-monospace, monospace" font-size="9" style="fill:rgb(244, 212, 137);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:9px;font-weight:400;text-anchor:middle;dominant-baseline:auto">photo.webp</text>
</g>
<g transform="translate(460, 300)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<rect x="0" y="0" width="100" height="50" rx="5" fill="#4a2a3d" stroke="#d47a9a" stroke-width="1.5" style="fill:rgb(74, 42, 61);stroke:rgb(212, 122, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<text x="50" y="22" text-anchor="middle" fill="#d47a9a" font-family="ui-monospace, monospace" font-size="11" font-weight="500" style="fill:rgb(212, 122, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">AVIF</text>
<text x="50" y="38" text-anchor="middle" fill="#e8a4bc" font-family="ui-monospace, monospace" font-size="9" style="fill:rgb(232, 164, 188);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:9px;font-weight:400;text-anchor:middle;dominant-baseline:auto">photo.avif</text>
</g>
<g stroke="#7a5fa3" stroke-width="1" fill="none" opacity="0.5" stroke-dasharray="3 3" style="fill:none;stroke:rgb(122, 95, 163);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.5;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
<path d="M 425 240 Q 445 200 460 155" style="fill:none;stroke:rgb(122, 95, 163);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<path d="M 425 240 L 460 240" style="fill:none;stroke:rgb(122, 95, 163);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
<path d="M 425 240 Q 445 280 460 325" style="fill:none;stroke:rgb(122, 95, 163);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:&quot;Anthropic Sans&quot;, -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
</g>
<text x="340" y="60" text-anchor="middle" fill="#e0d4ff" font-family="var(--font-sans)" font-size="32" font-weight="500" letter-spacing="2" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Anthropic Sans, sans-serif;font-size:32px;font-weight:500;text-anchor:middle;dominant-baseline:auto">magick</text>
<text x="340" y="84" text-anchor="middle" fill="#a08fc4" font-family="ui-monospace, monospace" font-size="12" style="fill:rgb(160, 143, 196);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">one command, every format</text>
<text x="340" y="430" text-anchor="middle" fill="#7a5fa3" font-family="ui-monospace, monospace" font-size="11" style="fill:rgb(122, 95, 163);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:11px;font-weight:400;text-anchor:middle;dominant-baseline:auto">$ magick photo.jpg -resize 1600 photo.webp</text>
<text x="340" y="450" text-anchor="middle" fill="#5a4a7a" font-family="var(--font-sans)" font-size="11" style="fill:rgb(90, 74, 122);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Anthropic Sans, sans-serif;font-size:11px;font-weight:400;text-anchor:middle;dominant-baseline:auto">ImageMagick 7</text>
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

@@ -1,183 +1,78 @@
ImageMagick est depuis de nombreuses années un outil incontournable pour la manipulation dimages en ligne de commande. Il est utilisé aussi bien dans des scripts simples que dans des chaînes de traitement industrielles, des environnements serveurs ou des pipelines CI/CD.
Si tu as déjà installé ImageMagick sur un serveur Debian, tu es probablement tombé sur cette étrangeté : la commande `convert` historique est là, mais elle s'appelle `convert-im6`. Et la commande moderne `magick`, présente partout ailleurs, semble manquer à l'appel — sauf si tu es sur Debian 13, où elle est revenue.
Cependant, sous Debian (et ses dérivés comme Ubuntu), lutilisation dImageMagick peut prêter à confusion : la commande historique `convert` nest pas disponible telle quelle, remplacée par `convert-im6`, et la commande moderne `magick` semble absente.
Le sujet est un peu plus subtil qu'il n'y paraît, et beaucoup d'explications qui circulent sur le web sont fausses (notamment celle qui prétend que `convert` entrerait en conflit avec un binaire de `util-linux` — c'est un mythe). Voilà ce qui se passe réellement.
Cet article clarifie les raisons de ce choix, les implications techniques, et les bonnes pratiques à adopter.
## Un peu de contexte sur ImageMagick
---
ImageMagick, c'est une suite d'outils en ligne de commande pour manipuler des images : conversion de formats, redimensionnement, compression, génération de vignettes, watermarks, lecture de métadonnées… Le genre d'outil qu'on retrouve aussi bien dans un script bash de cinq lignes que dans une chaîne de traitement industrielle ou un pipeline CI.
## 1. ImageMagick : rappel sur larchitecture
Historiquement, la suite est composée de plusieurs binaires distincts, chacun avec son rôle : `convert` pour la conversion, `identify` pour lire les métadonnées, `mogrify` pour le traitement par lot, `composite` pour combiner des images, `montage` pour les planches. C'est l'architecture d'**ImageMagick 6**, la version qui a régné en maître pendant une bonne quinzaine d'années.
ImageMagick est une suite doutils permettant :
Depuis 2016, **ImageMagick 7** est disponible. Le grand changement, c'est qu'il unifie tout derrière une seule commande : `magick`. Les anciennes commandes deviennent des sous-commandes (`magick convert`, `magick identify`, etc.), même si pour la rétrocompatibilité un binaire `magick` peut continuer à se comporter comme `convert` quand on l'appelle avec une syntaxe d'IM6.
* la conversion de formats dimages,
* le redimensionnement,
* la compression,
* lanalyse des métadonnées,
* le traitement par lot,
* la génération dimages (watermarks, miniatures, montages, etc.).
## Pourquoi le suffixe `-im6` sur Debian
Historiquement, chaque fonction correspondait à un binaire distinct :
C'est ici que beaucoup d'articles racontent n'importe quoi. La vraie raison n'a rien à voir avec un conflit avec `util-linux` — je l'ai vérifié, aucun paquet système ne fournit de commande `convert`. Tu peux le vérifier toi-même : `dpkg -S /usr/bin/convert` ne renvoie rien qui vienne de util-linux.
* `convert`
* `identify`
* `mogrify`
* `montage`
* `composite`
La vraie raison est plus prosaïque. Pendant des années, Debian a voulu pouvoir **packager IM6 et IM7 en parallèle** dans la même distribution, pour permettre une transition en douceur. Le souci, c'est que les deux versions fournissent des binaires aux mêmes noms (`convert`, `identify`, `mogrify`…) avec des comportements légèrement différents. Impossible de les installer côte à côte sans renommer.
Cette architecture correspond à **ImageMagick 6**.
La solution adoptée par les mainteneurs Debian a été d'ajouter un suffixe explicite au nom de chaque binaire :
---
- les outils d'IM6 deviennent `convert-im6.q16`, `identify-im6.q16`, etc.
- les outils d'IM7 deviennent `magick-im7.q16` et compagnie
## 2. Pourquoi Debian nutilise pas `convert`
Le `.q16` indique la profondeur quantique du binaire (16 bits par canal, la valeur par défaut), et le `-im6` / `-im7` indique la version d'ImageMagick. Les noms classiques (`convert`, `magick`) ne sont alors que des symlinks gérés par `update-alternatives`, qui pointent vers la version active. C'est le même mécanisme que pour `java`, `editor`, ou `python` à une époque.
Sous Debian, la commande `convert` appartient déjà au paquet **util-linux**.
Elle sert à convertir des systèmes de fichiers (par exemple FAT vers ext4).
## Ce qui change entre Debian 11, 12 et 13
Pour éviter toute ambiguïté et collision binaire, Debian a fait le choix de :
C'est l'autre point que la plupart des articles ratent : la situation n'est pas la même selon la version de Debian.
* **ne pas fournir `convert` pour ImageMagick**
* renommer les binaires ImageMagick avec le suffixe `-im6`
Sur **Debian 11 (bullseye) et 12 (bookworm)**, le paquet `imagemagick` installe IM6 (version 6.9.11.60). Tu n'as que `convert-im6` et ses copains, et `magick` n'existe pas dans les dépôts officiels (le paquet `imagemagick-7.q16` existe mais n'est pas le défaut). C'est cette situation que décrivent la plupart des tutoriels qui traînent sur le web.
Ainsi, sous Debian :
Sur **Debian 13 (trixie)**, sorti en août 2025, le défaut a basculé sur IM7 (version 7.1.1.43). La commande `magick` est disponible, et `convert` est désormais un symlink vers `magick-im7.q16`. Tu peux le vérifier :
| Fonction | Binaire |
| ------------------ | --------------- |
| Conversion dimage | `convert-im6` |
| Identification | `identify-im6` |
| Traitement par lot | `mogrify-im6` |
| Composition | `composite-im6` |
Ce choix garantit la stabilité du système et évite toute confusion avec des outils bas niveau.
---
## 3. ImageMagick 6 vs ImageMagick 7
### ImageMagick 6 (Debian)
* Architecture historique
* Commandes séparées
* Très stable
* Largement utilisée en production
* Maintenance conservatrice
Exemple :
```
convert-im6 image.jpg image.png
```bash
$ readlink -f /usr/bin/convert
/usr/bin/magick-im7.q16
```
---
Autrement dit, sur Trixie, si tu écris `convert image.jpg image.png`, tu appelles en réalité IM7 sous un nom d'IM6. Ça fonctionne pour la plupart des usages, mais attention : IM7 est plus strict sur l'ordre des arguments en ligne de commande (`magick [INPUT-OPTIONS] INPUT [OUTPUT-OPTIONS] OUTPUT`), donc certains scripts anciens peuvent grogner.
### ImageMagick 7
## Correspondance entre les deux versions
ImageMagick 7 introduit une évolution majeure :
👉 **une commande unique : `magick`**
| ImageMagick 6 (Debian 11/12) | ImageMagick 7 (Debian 13) |
| ---------------------------- | ------------------------- |
| `convert-im6` | `magick` |
| `identify-im6` | `magick identify` |
| `mogrify-im6` | `magick mogrify` |
| `composite-im6` | `magick composite` |
Toutes les fonctionnalités sont regroupées derrière ce binaire.
Pour les cas simples, le comportement est identique. Une commande de redimensionnement classique passe sans modification :
Exemple :
```
magick image.jpg image.png
```
Avantages :
* syntaxe unifiée
* meilleure gestion mémoire
* prise en charge améliorée des formats modernes (WebP, AVIF, HEIF)
* comportement plus cohérent dans les scripts
---
## 4. Pourquoi `magick` nest pas disponible par défaut sous Debian
Debian privilégie :
* la stabilité à long terme,
* la compatibilité ascendante,
* les mises à jour maîtrisées.
ImageMagick 7, bien que mature, est considéré comme une rupture de comportement par rapport à la version 6.
Pour cette raison, Debian stable fournit uniquement **ImageMagick 6**, et donc **pas la commande `magick`**.
---
## 5. Correspondance entre IM6 et IM7
| ImageMagick 6 (Debian) | ImageMagick 7 |
| ---------------------- | ------------------ |
| `convert-im6` | `magick` |
| `identify-im6` | `magick identify` |
| `mogrify-im6` | `magick mogrify` |
| `composite-im6` | `magick composite` |
---
## 6. Exemple concret de conversion
### Sous Debian (IM6)
```
```bash
# Debian 11/12
convert-im6 photo.jpg -resize 1600x1600 photo_reduite.jpg
```
### Sous IM7
```
# Debian 13
magick photo.jpg -resize 1600x1600 photo_reduite.jpg
```
Le comportement est identique.
## Faut-il s'inquiéter sur un serveur en production ?
---
Si tu administres une machine Debian 12 ou plus ancienne, non. IM6 est toujours activement maintenu pour les CVE (les correctifs sont régulièrement backportés dans les paquets stable), et la plupart des scripts existants continueront de fonctionner. Le `-im6` dans le nom du binaire est juste du marquage, pas une dépréciation.
## 7. Faut-il installer ImageMagick 7 sur Debian ?
Si tu migres vers Debian 13, prévois un peu de temps pour relire tes scripts. Les pièges classiques :
### Cas où cela peut être justifié
- l'ordre des options qui devient plus strict ;
- quelques comportements de couleur et d'alpha qui ont changé entre les deux versions, notamment sur les opérations chaînées ;
- le fichier `policy.xml` qui a déménagé : `/etc/ImageMagick-6/` devient `/etc/ImageMagick-7/`. Si tu avais assoupli les restrictions sur les PDF ou PostScript (un grand classique), il faut reporter la modification.
* Besoin explicite de `magick`
* Utilisation intensive de formats modernes (AVIF, HEIF)
* Développement doutils multi-plateformes
* Environnement isolé (conteneur, VM, CI)
Pour un projet PHP comme les tiens, l'extension Imagick côté PHP est sensible à cette transition : la version compilée doit correspondre à la version d'IM installée, sinon `pecl install imagick` échoue. Sur Trixie, c'est IM7 qu'il faut lier.
### Cas où il vaut mieux rester en IM6
## En pratique
* Serveur de production
* Scripts existants
* Environnement stable long terme
* Administration système classique
Sur Debian 11/12, utilise `convert-im6`, `identify-im6`, etc. C'est la convention locale, pas une version dégradée. Si tu veux `magick` malgré tout, tu peux installer le paquet `imagemagick-7.q16` (présent dans les dépôts depuis bookworm) et basculer les alternatives manuellement, mais ce n'est presque jamais nécessaire.
---
Sur Debian 13, utilise `magick` directement. La commande `convert` reste disponible par compatibilité, mais elle pointe en réalité vers IM7 — autant utiliser le nom officiel.
## 8. Recommandation opérationnelle
Sur Debian :
* ✔ Utiliser `convert-im6` et les outils associés
* ✔ Sappuyer sur la stabilité dImageMagick 6
* ✔ Éviter les alias globaux modifiant `convert`
* ❌ Ne pas forcer linstallation dIM7 sans besoin réel
Pour un environnement de développement ou de test, IM7 peut être installé séparément sans conflit, à condition de ne pas écraser les binaires système.
---
## 9. Conclusion
La présence de `convert-im6` au lieu de `magick` nest ni une anomalie ni une régression :
cest un **choix volontaire de Debian**, dicté par la stabilité et la cohérence du système.
ImageMagick 6 reste parfaitement adapté à la majorité des usages professionnels.
ImageMagick 7 apporte une ergonomie moderne, mais nest pas indispensable dans la majorité des cas.
---
### En résumé
* `convert-im6` → normal sous Debian
* `magick` → ImageMagick 7 uniquement
* Les deux sont fonctionnellement équivalents
* Le choix dépend du contexte, pas dune supériorité technique absolue
Et dans tous les cas, évite les alias globaux qui réécrivent `convert` : ça finit toujours par mordre quelqu'un, soit toi dans six mois, soit le prochain qui reprendra le serveur.
@@ -1,13 +1,34 @@
{
"uuid": "0e0b8d1d-3352-4ab7-bc70-7bc1f02ee485",
"slug": "imagemagick-sous-debian-comprendre-convert-im6-magick-et-les-choix-de-conception",
"title": "ImageMagick sous Debian : comprendre `convert-im6`, `magick` et les choix de conception",
"slug": "imagemagick-sur-debian-pourquoi-convert-im6-et-ou-trouver-magick",
"title": "ImageMagick sur Debian : pourquoi `convert-im6` et où trouver `magick`",
"author": "cedric@abonnel.fr",
"published": true,
"published_at": "2025-12-28 15:32:01",
"published_at": "2025-12-28 15:32",
"created_at": "2025-12-28 15:32:01",
"updated_at": "2025-12-28 15:32:01",
"revisions": [],
"cover": "cover.jpg",
"updated_at": "2026-05-12 00:29:00",
"revisions": [
{
"n": 1,
"date": "2026-05-12 00:29:00",
"comment": "",
"title": "ImageMagick sur Debian : pourquoi `convert-im6` et où trouver `magick`"
}
],
"cover": "cover.svg",
"files_meta": {
"45de275c5f174797-24653.svg": {
"author": "",
"source_url": ""
},
"7ee02eb092b334c4-23450.svg": {
"author": "",
"source_url": ""
}
},
"external_links": [],
"seo_title": "",
"seo_description": "",
"og_image": "",
"category": "linux"
}
@@ -0,0 +1,78 @@
Si tu as déjà installé ImageMagick sur un serveur Debian, tu es probablement tombé sur cette étrangeté : la commande `convert` historique est là, mais elle s'appelle `convert-im6`. Et la commande moderne `magick`, présente partout ailleurs, semble manquer à l'appel — sauf si tu es sur Debian 13, où elle est revenue.
Le sujet est un peu plus subtil qu'il n'y paraît, et beaucoup d'explications qui circulent sur le web sont fausses (notamment celle qui prétend que `convert` entrerait en conflit avec un binaire de `util-linux` — c'est un mythe). Voilà ce qui se passe réellement.
## Un peu de contexte sur ImageMagick
ImageMagick, c'est une suite d'outils en ligne de commande pour manipuler des images : conversion de formats, redimensionnement, compression, génération de vignettes, watermarks, lecture de métadonnées… Le genre d'outil qu'on retrouve aussi bien dans un script bash de cinq lignes que dans une chaîne de traitement industrielle ou un pipeline CI.
Historiquement, la suite est composée de plusieurs binaires distincts, chacun avec son rôle : `convert` pour la conversion, `identify` pour lire les métadonnées, `mogrify` pour le traitement par lot, `composite` pour combiner des images, `montage` pour les planches. C'est l'architecture d'**ImageMagick 6**, la version qui a régné en maître pendant une bonne quinzaine d'années.
Depuis 2016, **ImageMagick 7** est disponible. Le grand changement, c'est qu'il unifie tout derrière une seule commande : `magick`. Les anciennes commandes deviennent des sous-commandes (`magick convert`, `magick identify`, etc.), même si pour la rétrocompatibilité un binaire `magick` peut continuer à se comporter comme `convert` quand on l'appelle avec une syntaxe d'IM6.
## Pourquoi le suffixe `-im6` sur Debian
C'est ici que beaucoup d'articles racontent n'importe quoi. La vraie raison n'a rien à voir avec un conflit avec `util-linux` — je l'ai vérifié, aucun paquet système ne fournit de commande `convert`. Tu peux le vérifier toi-même : `dpkg -S /usr/bin/convert` ne renvoie rien qui vienne de util-linux.
La vraie raison est plus prosaïque. Pendant des années, Debian a voulu pouvoir **packager IM6 et IM7 en parallèle** dans la même distribution, pour permettre une transition en douceur. Le souci, c'est que les deux versions fournissent des binaires aux mêmes noms (`convert`, `identify`, `mogrify`…) avec des comportements légèrement différents. Impossible de les installer côte à côte sans renommer.
La solution adoptée par les mainteneurs Debian a été d'ajouter un suffixe explicite au nom de chaque binaire :
- les outils d'IM6 deviennent `convert-im6.q16`, `identify-im6.q16`, etc.
- les outils d'IM7 deviennent `magick-im7.q16` et compagnie
Le `.q16` indique la profondeur quantique du binaire (16 bits par canal, la valeur par défaut), et le `-im6` / `-im7` indique la version d'ImageMagick. Les noms classiques (`convert`, `magick`) ne sont alors que des symlinks gérés par `update-alternatives`, qui pointent vers la version active. C'est le même mécanisme que pour `java`, `editor`, ou `python` à une époque.
## Ce qui change entre Debian 11, 12 et 13
C'est l'autre point que la plupart des articles ratent : la situation n'est pas la même selon la version de Debian.
Sur **Debian 11 (bullseye) et 12 (bookworm)**, le paquet `imagemagick` installe IM6 (version 6.9.11.60). Tu n'as que `convert-im6` et ses copains, et `magick` n'existe pas dans les dépôts officiels (le paquet `imagemagick-7.q16` existe mais n'est pas le défaut). C'est cette situation que décrivent la plupart des tutoriels qui traînent sur le web.
Sur **Debian 13 (trixie)**, sorti en août 2025, le défaut a basculé sur IM7 (version 7.1.1.43). La commande `magick` est disponible, et `convert` est désormais un symlink vers `magick-im7.q16`. Tu peux le vérifier :
```bash
$ readlink -f /usr/bin/convert
/usr/bin/magick-im7.q16
```
Autrement dit, sur Trixie, si tu écris `convert image.jpg image.png`, tu appelles en réalité IM7 sous un nom d'IM6. Ça fonctionne pour la plupart des usages, mais attention : IM7 est plus strict sur l'ordre des arguments en ligne de commande (`magick [INPUT-OPTIONS] INPUT [OUTPUT-OPTIONS] OUTPUT`), donc certains scripts anciens peuvent grogner.
## Correspondance entre les deux versions
| ImageMagick 6 (Debian 11/12) | ImageMagick 7 (Debian 13) |
| ---------------------------- | ------------------------- |
| `convert-im6` | `magick` |
| `identify-im6` | `magick identify` |
| `mogrify-im6` | `magick mogrify` |
| `composite-im6` | `magick composite` |
Pour les cas simples, le comportement est identique. Une commande de redimensionnement classique passe sans modification :
```bash
# Debian 11/12
convert-im6 photo.jpg -resize 1600x1600 photo_reduite.jpg
# Debian 13
magick photo.jpg -resize 1600x1600 photo_reduite.jpg
```
## Faut-il s'inquiéter sur un serveur en production ?
Si tu administres une machine Debian 12 ou plus ancienne, non. IM6 est toujours activement maintenu pour les CVE (les correctifs sont régulièrement backportés dans les paquets stable), et la plupart des scripts existants continueront de fonctionner. Le `-im6` dans le nom du binaire est juste du marquage, pas une dépréciation.
Si tu migres vers Debian 13, prévois un peu de temps pour relire tes scripts. Les pièges classiques :
- l'ordre des options qui devient plus strict ;
- quelques comportements de couleur et d'alpha qui ont changé entre les deux versions, notamment sur les opérations chaînées ;
- le fichier `policy.xml` qui a déménagé : `/etc/ImageMagick-6/` devient `/etc/ImageMagick-7/`. Si tu avais assoupli les restrictions sur les PDF ou PostScript (un grand classique), il faut reporter la modification.
Pour un projet PHP comme les tiens, l'extension Imagick côté PHP est sensible à cette transition : la version compilée doit correspondre à la version d'IM installée, sinon `pecl install imagick` échoue. Sur Trixie, c'est IM7 qu'il faut lier.
## En pratique
Sur Debian 11/12, utilise `convert-im6`, `identify-im6`, etc. C'est la convention locale, pas une version dégradée. Si tu veux `magick` malgré tout, tu peux installer le paquet `imagemagick-7.q16` (présent dans les dépôts depuis bookworm) et basculer les alternatives manuellement, mais ce n'est presque jamais nécessaire.
Sur Debian 13, utilise `magick` directement. La commande `convert` reste disponible par compatibilité, mais elle pointe en réalité vers IM7 — autant utiliser le nom officiel.
Et dans tous les cas, évite les alias globaux qui réécrivent `convert` : ça finit toujours par mordre quelqu'un, soit toi dans six mois, soit le prochain qui reprendra le serveur.