• Li chevron_right

      25 ans de GIMP et version de développement 2.99.2 : premiers pas vers GIMP 3 !

      Jehan · pubsub.eckmul.net / linuxfr_news · Wednesday, 23 December, 2020 - 09:44 · 73 minutes

    <div><p>GIMP a fêté ses 25 ans d’existence le 21 novembre 2020. Passé de petit projet d’étudiants qui l’ont abandonné du jour au lendemain à projet majeur incontestable du graphisme mondial qui a fait bouger les lignes du logiciel Libre… ce logiciel aura eu un impact sur le monde.</p> <p>Peu avant cet anniversaire, la version de développement GIMP 2.99.2 est sortie le 25 octobre. Bien que ce ne soit qu’une version de développement, il s’agit de la première étape publique du chemin menant à GIMP 3 !</p> <p>Nouveautés marquantes de GIMP 2.99.2 :</p> <ul> <li>Interface utilisateur maintenant en GTK3, incluant donc la prise en charge native pour Wayland et les écrans haute densité de pixels (HiPPI).</li> <li>Réorganisation et nettoyage du code</li> <li>Nouvelle interface de développement (<em>API</em>) pour les greffons</li> <li>Les greffons peuvent maintenant être écrits en Python 3, JavaScript, Lua, et Vala.</li> <li>L’invasion spatiale (colorimétrique) continue</li> <li>Cache de rendu pour des performances améliorées</li> </ul> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31312f30362f67696d702d322d39392d322d72656c65617365642f67696d702d73706c6173682d322e39392e322e6a7067/gimp-splash-2.99.2.jpg" alt="Splash screen de GIMP 2.99.2 par Aryeom, CC by-sa" title="Source : https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/gimp-splash-2.99.2.jpg"><br> <em>Splash screen de GIMP 2.99.2 par <a href="https://film.zemarmot.net">Aryeom</a>, Creative Commons by-sa 4.0</em></p> <p><em>Note de la modération : LinuxFR a la chance d’avoir parmi ses contributeurs : Jehan, très actif dans le développement de GIMP depuis quelques années déjà (entre <a href="//linuxfr.org/tags/zemarmot/public">autres choses</a>). Grâce à lui, non seulement vous découvrez les nouveautés de chaque version de GIMP dans la langue de <s>Molière</s> Gims, mais en plus vous lisez bien souvent une version enrichie de l’annonce initiale en anglais. C’est notamment le cas avec cette dépêche.</em></p> </div><ul><li>lien nᵒ 1 : <a title="https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/" hreflang="en" href="https://linuxfr.org/redirect/107335">Annonce de sortie de GIMP 2.99.2</a></li><li>lien nᵒ 2 : <a title="https://www.gimp.org/news/2020/11/21/25-years-of-gimp/" hreflang="en" href="https://linuxfr.org/redirect/107586">Annonce des 25 ans de GIMP</a></li><li>lien nᵒ 3 : <a title="https://www.gimp.org/donating/" hreflang="en" href="https://linuxfr.org/redirect/107587">Page de donation de GIMP</a></li><li>lien nᵒ 4 : <a title="https://film.zemarmot.net/fr/" hreflang="fr" href="https://linuxfr.org/redirect/107588">Projet ZeMarmot (dont fait partie l’auteur de l’article, développeur majeur de GIMP)</a></li><li>lien nᵒ 5 : <a title="https://gitlab.gnome.org/GNOME/gimp/" hreflang="en" href="https://linuxfr.org/redirect/107589">Dépôt de sources et suivi de bugs</a></li><li>lien nᵒ 6 : <a title="https://linuxfr.org/news/gimp-2-10-22-consolidation-des-formats" hreflang="fr" href="https://linuxfr.org/redirect/107590">Dépêche précédente sur LinuxFr (GIMP 2.10.22)</a></li></ul><div><h2 class="sommaire">Sommaire</h2> <ul class="toc"> <li> <a href="#toc-interface-utilisateur-en-gtk3">Interface utilisateur en GTK3</a><ul> <li><a href="#toc-vraie-prise-en-charge-des-%C3%A9crans-%C3%A0-haute-densit%C3%A9-de-pixels">Vraie prise en charge des écrans à haute densité de pixels</a></li> <li><a href="#toc-prise-en-charge-am%C3%A9lior%C3%A9e-des-p%C3%A9riph%C3%A9riques-dentr%C3%A9e">Prise en charge améliorée des périphériques d’entrée</a></li> <li><a href="#toc-personnalisation-du-th%C3%A8me">Personnalisation du thème</a></li> <li> <a href="#toc-prise-en-charge-de-wayland">Prise en charge de Wayland</a><ul> <li><a href="#toc-les-portails">Les « portails » ?</a></li> </ul> </li> </ul> </li> <li><a href="#toc-s%C3%A9lectionner-plusieurs-calques-%C3%A0-la-fois">Sélectionner plusieurs calques à la fois</a></li> <li> <a href="#toc-interface-de-programmation-api-pour-les-greffons">Interface de programmation (<em>API</em>) pour les greffons</a><ul> <li><a href="#toc-api-orient%C3%A9e-objets">API orientée Objets</a></li> <li><a href="#toc-usage-de-gio-pour-la-gestion-des-fichiers">Usage de GIO pour la gestion des fichiers</a></li> <li><a href="#toc-d%C3%A9claration-des-greffons">Déclaration des greffons</a></li> <li><a href="#toc-prise-en-charge-de-langages-de-programmation-vari%C3%A9s-bindings">Prise en charge de langages de programmation variés (<em>bindings</em>)</a></li> <li><a href="#toc-greffons-goat-exercise-promenade-de-ch%C3%A8vre">Greffons <em>goat exercise</em> (« promenade de chèvre »)</a></li> <li><a href="#toc-documentation-de-d%C3%A9veloppement">Documentation de développement</a></li> </ul> </li> <li><a href="#toc-extensions">Extensions</a></li> <li><a href="#toc-linvasion-spatiale">L’invasion spatiale</a></li> <li><a href="#toc-cache-de-rendu">Cache de rendu</a></li> <li><a href="#toc-r%C3%A8gles-dimport-am%C3%A9lior%C3%A9es">Règles d’import améliorées</a></li> <li><a href="#toc-curseurs-compacts">Curseurs compacts</a></li> <li><a href="#toc-am%C3%A9lioration-continue-du-code">Amélioration continue du code</a></li> <li> <a href="#toc-paquets-t%C3%A9l%C3%A9chargeables">Paquets téléchargeables</a><ul> <li><a href="#toc-flatpak-beta-disponible">Flatpak "<em>beta</em>" disponible</a></li> <li><a href="#toc-windows">Windows</a></li> <li><a href="#toc-macos">macOS</a></li> </ul> </li> <li><a href="#toc-et-ensuite">Et ensuite ?</a></li> <li> <a href="#toc-gimp-a-25-ans">GIMP a 25 ans!</a><ul> <li><a href="#toc-un-peu-dhistorique">Un peu d’historique</a></li> <li><a href="#toc-un-logiciel-qui-fait-avancer-tout-le-monde">Un logiciel qui fait avancer tout le monde</a></li> <li><a href="#toc-apports-de-zemarmot">Apports de ZeMarmot</a></li> </ul> </li> <li><a href="#toc-financer-le-d%C3%A9veloppement-de-gimp">Financer le développement de GIMP</a></li> </ul> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31312f30362f67696d702d322d39392d322d72656c65617365642f67696d702d322d39392d322d6f766572766965772e6a7067/gimp-2-99-2-overview.jpg" alt="Poster du film libre « Coffee Run » par Hjalti Hjálmarsson" title="Source : https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/gimp-2-99-2-overview.jpg"><br> <em>GIMP 2.99.2 avec le poster du film <a href="https://cloud.blender.org/films/coffee-run">Coffee Run</a> par Hjalti Hjálmarsson</em></p> <h2 id="toc-interface-utilisateur-en-gtk3">Interface utilisateur en GTK3</h2> <p>La première différence est bien sûr visuelle, avec un sentiment d’interface un peu plus moderne, ainsi que l’utilisation possible de nouveaux éléments d’interface. Diverses boîtes de dialogue profitent aussi maintenant de décorations de fenêtre côté client. Cependant les différences esthétiques sont loin d’être l’attrait majeur de GTK3.</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31312f30362f67696d702d322d39392d322d72656c65617365642f67696d702d322e31302e32322d322e39392e322e6a7067/gimp-2.10.22-2.99.2.jpg" alt="GIMP 2.10.22 and 2.99.2 interfaces côté à côte" title="Source : https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/gimp-2.10.22-2.99.2.jpg"><br> <em>Gauche : GIMP 2.10.22 - Droite : GIMP 2.99.2</em></p> <h3 id="toc-vraie-prise-en-charge-des-écrans-à-haute-densité-de-pixels">Vraie prise en charge des écrans à haute densité de pixels</h3> <p>L’une des faiblesses majeures de GTK+2 est l’absence de prise en charge d’écrans à haute densité de pixels (par exemple de petits écrans avec une haute résolution ou de grands écrans avec une extrêmement haute résolution). Ces derniers ne sont pas majoritaires mais deviennent de plus en plus répandus, notamment chez les professionnels du secteur graphique. GIMP 2.10 avait une prise en charge limitée (dont j’étais d’ailleurs à l’origine de l’implémentation), comme une rustine de code, qui aidait dans certains cas intermédiaires mais n’était pas appropriée aux usages plus intensifs.</p> <p>GTK3 fournit donc une vraie prise en charge dans GIMP qui suivra désormais les préférences système pour le redimensionnement d’interface.</p> <p><em>État</em> : fini.</p> <h3 id="toc-prise-en-charge-améliorée-des-périphériques-dentrée">Prise en charge améliorée des périphériques d’entrée</h3> <p>Par « périphérique d’entrée », on entend surtout les tablettes graphiques et tablette-écrans. Ces périphériques étaient bien sûr déjà pris en charge, mais avec pas mal d’insuffisances jusqu’à GIMP 2. Notamment il fallait brancher la tablette avant de démarrer GIMP et l’activer explicitement dans les préférences du logiciel. Pire, débrancher la tablette en cours d’usage pouvait rendre GIMP instable (un problème que j’ai plus ou moins mitigé dans GTK+2, pendant la série 2.8, l’un de mes premiers <a href="https://gitlab.gnome.org/GNOME/gtk/-/commit/8368de2bc35056d466f0a536eadc353c69c0e6e3">patchs majeurs</a> mais qui néanmoins n’est pas la solution idéale que nous apporte GTK3).</p> <p>GIMP 3 (et donc cette version de développement aussi) nous permet ainsi le branchement à chaud. En d’autres termes: démarrez GIMP, branchez la tablette, c’est bon. Vous êtes maintenant paré pour dessiner avec prise en charge de la pression, de l’angle et de toute autre entrée du stylet.</p> <p>L’une des choses que l’on souhaite améliorer maintenant est la simplification de la configuration avancée de ces périphériques d’entrée.</p> <p>Pour ce qui est de la prise en charge des évènements tactiles multi-point (pour zoomer, faire tourner ou se déplacer sur le canevas par exemple), nous avons un peu expérimenté cela à un moment. Nous n’avons néanmoins pas achevé cela, car nous avons vite réalisé qu’il ne s’agissait pas d’une priorité en comparaison d’autres fonctionnalités.</p> <p>Le tactile est une fonctionnalité très sympathique, mais elle peut aussi s’avérer gênante. D’ailleurs de nombreux artistes professionnels finissent par désactiver le tactile pour ainsi éviter des actions non voulues (au point que de nos jours, les tablettes haut de gamme tendent à sortir avec un interrupteur physique permettant de désactiver matériellement le tactile, même si on peut aussi le désactiver logiciellement). C’est pourquoi ce n’est pas une priorité. Nous ne savons donc pas si GIMP v3.0 sortira avec prise en charge des gestes multi-points. Bien sûr, nous accueillons avec plaisir tout patch de quiconque voudrait en faire sa priorité et ainsi s’assurer que GIMP ait cette fonctionnalité.</p> <p><em>État</em> : encore du travail à faire dans la simplification de la configuration des tablettes maintenant que certaines fonctionnalités historiques ne sont plus utiles ou peuvent être présentées de manière plus compréhensible. Il existe aussi des fonctionnalités spécifiques à Wayland pour les tablettes que nous pourrions ajouter en fonction du temps disponible et de l’intérêt exprimé.</p> <h3 id="toc-personnalisation-du-thème">Personnalisation du thème</h3> <p>Nous héritons aussi bien entendu du système de thème de GTK3, basé sur le langage de style CSS. Cela signifie malheureusement que tous les thèmes personnalisés des versions passées ne seront pas compatibles avec GIMP 3.0 et les sorties futures. Le bon côté des choses est qu’il s’agit d’un standard bien connu et répandu, ce qui devrait rendre la personnalisation de l’interface de GIMP bien plus accessible à un plus grand monde.</p> <p>De même, les thèmes d’icônes symboliques sont bien mieux pris en charge. Les couleurs s’adapteront aux couleurs de premier et arrière plans définies dans le thème. Si vous avez déjà changé le thème de GIMP 2.10.x, en passant d’un thème sombre à un thème clair, vous vous souvenez probablement que vous deviez aussi changer le thème d’icône manuellement. Ce n’est plus nécessaire vu que les icônes seront automatiquement recolorées en fonction de votre thème.</p> <p>Enfin le « thème sombre » est un concept central de GTK3, ce qui signifie que même les décorations de fenêtre seront recolorées si le système de fenêtre le permet (voir la capture plus haut).</p> <p>Notons aussi qu’un même thème peut proposer à la fois une variante sombre et claire. C’est pourquoi la page de préférences de <em>Thème</em> propose une case à cocher <em>« Utiliser la variante de thème sombre si disponible »</em>. De même, un thème d’icône peut proposer à la fois des versions symboliques et couleurs, ce pourquoi la page « Thème d’icône » propose la case à cocher "<em>Utiliser les icônes symboliques si disponibles</em>". Vous êtes ainsi libre de personnaliser GIMP selon vos préférences.</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31312f30362f67696d702d322d39392d322d72656c65617365642f67696d702d322e39392e322d7468656d65732e6a7067/gimp-2.99.2-themes.jpg" alt="Theme switching" title="Source : https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/gimp-2.99.2-themes.jpg"><br> <em>Passer de la variante sombre à claire en cochant une case, ce qui recolore aussi les icônes symboliques</em></p> <p><em>État</em> : en attente de contributeurs de thème.</p> <p>Côté code, les changements relatifs à la personnalisation du thème sont finis, maintenant nous avons besoin d’un thème par défaut ! Vous pourrez remarquer que GIMP 2.99.2 ne liste qu’un thème “Système”, qui utilise donc principalement les couleurs de votre thème GTK système. Il s’agit donc d’une régression par rapport à 2.10 qui proposait des thèmes aux couleurs neutres (clair, obscur et intermédiaire). Nous souhaitons donc réintroduire un thème par défaut avec des variantes clair/obscur ainsi qu’un thème gris-intermédiaire.</p> <p>Pour rappel, le problème principal des thèmes systèmes est qu’ils couvrent des cas d’usage “bureautiques” alors que le travail graphique nécessite des couleurs neutres, sans teinte, pour ne pas polluer sa perception des couleurs. C’est la raison principale pour laquelle GIMP vient désormais avec un thème neutre et des icônes symboliques.</p> <p>Bien entendu, les thèmes et icônes colorés sont toujours utilisables. D’ailleurs nous sommes certains que la communauté créera très rapidement de jolis thèmes personnalisés. Une très bonne manière de contribuer à GIMP sans être développeur !</p> <h3 id="toc-prise-en-charge-de-wayland">Prise en charge de Wayland</h3> <p>Le portage vers GTK3 devrait théoriquement nous permettre de bénéficier sans rien avoir à faire de la prise en charge de Wayland sous Linux. C’est presque le cas, mais pas tout à fait. Malheureusement, quelques bugs ont déjà été rapportés pour GIMP tournant sous Wayland. Certains d’entre eux sont clairement bloquants pour une publication de GIMP 3 (comme des comportements étranges de l’interface graphique ou d'<a href="https://gitlab.gnome.org/GNOME/gimp/-/issues/4092">énormes fuites mémoire</a>). D’autres sont moins sérieux mais quand même gênants, comme celui où l’écran d’accueil est trop grand sur des affichages HiPPI parce que Wayland ne rapporte pas proprement la mise à l’échelle.</p> <p>À moins que ces problèmes ne soient résolus, nous ne pensons pas pouvoir affirmer que la prise en charge de Wayland nous convient. Nous serons reconnaissants pour tout correctif pour y remédier, qu’ils soient envoyés à GIMP, GTK ou toute partie concernée de la pile technologique. Si l’idée de nous aider vous intéresse, voici la <a href="https://gitlab.gnome.org/GNOME/gimp/-/issues?scope=all&amp;utf8=%E2%9C%93&amp;state=opened&amp;label_name%5B%5D=Environment%3AWayland">liste de bugs concernant Wayland</a>.</p> <p>Une prise en charge convenable de Wayland signifie également que quelques fonctionnalités doivent être réimplémentées à travers ce que l’on appelle des portails. Nous avons déjà fait cela pour le greffon de capture d’écran (qui utilise les portails Freedesktop, GNOME et KDE), et il y a également un travail en cours pour corriger la sélection de couleur à l’écran (fonctionne déjà sur KDE, pas encore avec les portails GNOME et Freedesktop; malheureusement Wayland vient avec pas mal de duplication de travail en fonction des bureaux).</p> <p>Quant au portail des fichiers, c’est probablement quelque chose qui n’arrivera pas pour GIMP 3.0 parce que certaines fonctionnalités de la boîte de dialogue de fichier GTK restent indispensables. Mais ça pourrait être proposé plus tard à l’occasion de la refonte planifiée du mécanisme d’exportation.</p> <p>Enfin il faut savoir que Wayland a actuellement une prise en charge inexistante de la correction de couleurs, c’est d’ailleurs une très grosse cause de conflit actuellement entre certains utilisateurs de logiciels de graphisme sous Linux et les développeurs de Wayland. Il faut donc savoir que même si GIMP tournait très bien sous Wayland, les serveurs Wayland ne sont pas encore utilisables pour un usage graphique professionnel, et ce au niveau protocolaire.</p> <p><em>État</em> : quelques bugs bloquants en particulier requièrent une attention. Les contributions sont bienvenues.</p> <h4 id="toc-les-portails">Les « portails » ?</h4> <p>Propos de Jehan extrait du <em>chat</em> de rédaction de la dépêche pour qui veut en savoir plus sur ce que sont les portails :</p> <blockquote> <p>Les portails sont un changement de paradigme qui vient avec Wayland et les empaquetages comme Flatpak. Il implique de revoir la logique de certaines interactions. On y viendra, on a déjà réfléchi depuis des années à des changements dans le concept d’export notamment qui pourront aller avec ce changement de paradigme.<br> Les portails sont un concept de « services du bureau Linux » (techniquement simplement un service D-Bus) pour diverses fonctionnalités : au lieu d’accéder directement aux services bas niveau (serveur d’affichage, système de fichiers, etc.), on demande à un service « je veux ça ». En l’occurrence, on demanderait au service « on veut ouvrir un fichier », puis on perd la main et on attend une réponse du service (entre-temps, le service aura probablement montré un sélecteur de fichier à l’utilisateur, lequel aura sélectionné un fichier, mais l’application ne connaît pas le détail).<br> Ça va avec les nouveaux systèmes de permissions qui font progressivement leur entrée dans Linux. À terme, l’idée est qu’une application ne voit plus aucun fichier, ne peut plus accéder au réseau sans le faire savoir, ne voit pas les autres applications ni ce qu’il y a sur l’écran, etc.<br> C’est intéressant niveau sécurité mais apporte énormément de limitations. Pour un usage avancé, les possibilités des portails sont encore très très limitées parce que ça permet d’ouvrir <em>un</em> sélecteur de fichier. On ne sait pas lequel. Ça peut en effet être le sélecteur GTK comme celui de Qt, celui de Windows ou de macOS, etc. Donc ça veut dire qu’on ne peut plus personnaliser cette boîte de dialogue.<br> Typiquement les autres types de portails qui seraient à gérer par une application complexe (telle que GIMP) sont : les captures d’écran (image voire vidéo), la sélection des couleurs à l’écran, les périphériques d’entrée/sortie (imprimantes, scanners, webcams…), la gestion des écrans (une application sous Wayland ne sait plus sa position et n’a plus la possibilité de choisir sa position à l’écran, ni même ne sait combien d’écrans il y a, ou ne connaît les profils de couleurs, ce qui est d’ailleurs un gros problème pour les logiciels graphiques qui ne peuvent être utilisés professionnellement sous Wayland, etc.), l’accès au réseau, la communication avec les autres applications, etc.</p> </blockquote> <h2 id="toc-sélectionner-plusieurs-calques-à-la-fois">Sélectionner plusieurs calques à la fois</h2> <p>Gérer un projet complexe contenant des dizaines ou des centaines de calques est devenu beaucoup plus facile grâce à la possibilité de sélectionner plusieurs calques à la fois. La réalisatrice de dessins animés <a href="https://film.zemarmot.net/">Aryeom</a> réclamait cette possibilité depuis 2015 et son projet <em>ZeMarmot</em> en a donc pris en charge le développement. Nouvel exemple de la collaboration fructueuse entre artiste et développeur : chaque détail a été précisé après discussion et a d’abord été testé en production.</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31312f30362f67696d702d322d39392d322d72656c65617365642f67696d702d322e39392e322d6d756c74692d6c617965722d73656c656374696f6e2e706e67/gimp-2.99.2-multi-layer-selection.png" alt="Selecting multiple layers in Layers dockable" title="Source : https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/gimp-2.99.2-multi-layer-selection.png"><br> <em>4 calques sélectionnés, prêts à être déplacés ou transformés en même temps</em></p> <p>On peut sélectionner plusieurs calques dans la fenêtre des calques avec les combinaisons de touches classiques (<code>Shift+click</code> pour une série de calques et <code>Ctrl+click</code> pour sélectionner ou désélectionner). On peut réorganiser les calques par série : déplacer, réordonner, supprimer, dupliquer, fusionner, etc. tous les calques sélectionnés d’un coup.</p> <p>Plusieurs outils fonctionnent sur tous les calques sélectionnés. Par exemple les outils de transformation (déplacement, rotation, échelle, perspective, transformation unifiée…) transformeront tous les calques sélectionnés (en plus des calques liés par l’icône de chaîne). On peut aussi découper plusieurs calques d’un coup ou copier-coller une projection de calques fusionnés. L’outil <em>pipette</em> peut même prendre un mélange de couleurs réparties sur plusieurs calques (similaire à l’option "<em>Échantillonner sur tous les calques</em>" en version partielle, c’est-à-dire sans avoir à masquer les calques non-désirés).</p> <p>Il ne s’agit que de quelques exemples parce qu’une grosse partie du code est impactée par ce changement : le concept d’un seul calque actif est omniprésent dans les actions. Vous en apprendrez plus en lisant <a href="https://www.patreon.com/posts/report-on-for-in-37266151">le rapport de développement</a>.</p> <p><em>État</em> : bien avancé, mais toujours en cours.</p> <p>Quelques outils fonctionnent encore en calque unique et doivent être modifiés avant la version finale. Ce faisant, nous casserons probablement des choses, c’est pourquoi nous sortirons d’autres versions de développement. De plus, nous pourrions bientôt étendre la sélection de plusieurs éléments aux chemins et canaux.</p> <p>Enfin, la peinture et les opérations GEGL (filtres) sont encore limitées aux calques uniques. Permettre de peindre ou de retoucher des pixels sur plusieurs calques à la fois, nécessite probablement des changements d’interface (à concevoir) pour éviter les effets indésirables, comme des opérations trop longues ou qu’on ne pourrait annuler.</p> <h2 id="toc-interface-de-programmation-api-pour-les-greffons">Interface de programmation (<em>API</em>) pour les greffons</h2> <p>Nous avons dû briser l’interface de programmation pour les greffons afin d’introduire beaucoup d’améliorations, tout en faisant attention à ne pas briser ce qu’il n’y avait pas lieu d’être.</p> <p>Porter un greffon constitué d’un seul fichier de GIMP 2.10 à GIMP 3 prend d’habitude entre 5 et 30 minutes. Nous travaillons à l’écriture d’une documentation de portage, qui sera publiée en même temps que GIMP 3.</p> <p>Si vous êtes un développeur de greffons, une des premières étapes à suivre est de s’assurer que vous n’utilisez pas de fonctions obsolètes. Nous avons compilé une <a href="https://gitlab.gnome.org/GNOME/gimp/-/blob/master/devel-docs/GIMP3-plug-in-porting-guide/removed_functions.md">liste de fonctions retirées avec leur remplacement</a>. Vous pouvez déjà effectuer cette partie du portage tout en ciblant les versions GIMP 2.10.x.</p> <h3 id="toc-api-orientée-objets">API orientée Objets</h3> <p>Parmi les changements notables, nous avons écarté les identifiants d’objets (<em>object IDs</em>) pour utiliser directement des objets. En particulier dans GIMP 3, <code>GimpImage</code>, <code>GimpItem</code>, <code>GimpDrawable</code>, <code>GimpLayer</code>, <code>GimpVectors</code>, <code>GimpChannel</code> et <code>GimpPDB</code> sont des objets (d’autres classes d’objets existent déjà ou pourraient être ajoutées plus tard).</p> <p>Cela permet une programmation plus sécurisée en ayant des objets typés dont la classe peut facilement être vérifiée, et donc implique des messages d’erreur plus adaptés (avec les <em>IDs</em>, qui sont simplement des nombres entiers, il n’était pas rare d’avoir des bogues bizarres à cause d’<em>IDs</em> incorrectes, compliquant la recherche de bogues).</p> <p>La programmation objet amène également l’héritage de classes. Typiquement, une <code>GimpLayer</code> est aussi une <code>GimpDrawable</code>, elle-même étant une <code>GimpItem</code>. Cela signifie que vous pouvez utiliser n’importe quelles méthodes des classes parentes et facilement savoir à quelle classe elles appartiennent.</p> <p>Une conséquence non-C est que cela permet des ponts pour adapter les API à leur propre modèle objet. Ainsi, dupliquer une instance <code>GimpImage</code> nommée par exemple <code>img</code> en Python 3 peut être fait avec l’API assez pythonesque <code>img2 = img.duplicate()</code>.</p> <p><em>État</em> : le portage objet est quasi terminé. Nous voulons également utiliser la signalisation objet, qui est en cours de réalisation et devrait au final permettre de connecter des gestionnaires de signaux directement aux objets pour gérer des évènements venant du cœur de l’application (chose impossible dans GIMP 2, sauf à lancer des requêtes périodiquement).</p> <h3 id="toc-usage-de-gio-pour-la-gestion-des-fichiers">Usage de GIO pour la gestion des fichiers</h3> <p>Un autre changement dans l’interface de programmation des greffons (<em>API</em>) est l’usage de <code>GFile</code> pour abstraire les fichiers, c’est-à-dire donc avec GLib/GIO.</p> <p>Cela peut paraître un peu ennuyeux au premier abord (cela peut ajouter une étape additionnelle de création et de gestion de <code>GFile</code>), néanmoins cela permet une gestion des fichiers plus robuste. En particulier, il n’est plus nécessaire de se préoccuper du codage des chemins d’accès et de conversions (un problème lorsque les développeurs supposent que tout le monde utilise le même codage) et donc moins de chemins erronés et de code non-portable. En outre, on n’a plus à se poser la question des schémas de notation de chemins différents entre systèmes d’exploitations (tels que le caractère de séparation de répertoire ou les notations de système de fichier). Travailler avec des <code>GFile</code> rend la représentation interne d’un fichier transparente, donc l’usage d’un fichier plus robuste.</p> <p>Un autre avantage majeur est que l’interface obtient automatiquement toutes les capacités des modules GIO installés, tels que le chargement/enregistrement sur des URI distantes (et possiblement à travers des canaux chiffrés comme HTTPS). Cela ouvre donc des possibilités sans code spécifique côté applicatif.</p> <p>L’usage de GIO pour le traitement de fichier avait déjà été fait dans le code principal de GIMP pour la sortie initiale de GIMP 2.10.0. Nous permettons maintenant aux dévelopeurs de greffons d’en profiter également dans GIMP 3.0.</p> <p><em>État</em>: terminé, excepté pour les <em>bindings</em> historiques.</p> <p>Les <em>bindings</em> nouvelle génération par introspection <code>GObject</code> ont un accès complet à l’interface <code>GLib</code>/<code>GIO</code> et sont donc parfaitement capables de créer des <code>GFile</code> à travers des chemins d’accès et des URIs. Par contre les <em>bindings</em> historiques, tels que <code>script-fu</code> (Scheme), n’ont pas accès à l’API <code>GFile</code>. Nous devons travailler sur ce sujet (un patch existe même déjà mais a besoin de revue de code).</p> <h3 id="toc-déclaration-des-greffons">Déclaration des greffons</h3> <p>L’interface de programmation des greffons a connu une refonte majeure dans les fonctions de déclaration du greffon. Cela se fait maintenant en sous-classant une classe <code>GimpPlugIn</code> et en re-définissant certaines méthodes pour lister et documenter les procédures créées par le greffon. Cela permet une déclaration bien plus propre, explicite et évolutive que l’interface précédente, et cela devrait donc aider les développeurs de greffons.</p> <p>La manière dont les paramètres des procédures de vos greffons sont maintenant gérés a également été standardisée, en particulier en utilisant les propriétés <code>GObject</code> d’un objet de configuration. C’est plus facile à gérer en tant que logique générique. En particulier, le même objet de configuration nous permet de générer de nombreuses fonctionnalités. Par exemple, il aidera à générer des dialogues à la demande pour des greffons qui ne veulent pas <em>tripatouiller</em> du GTK ou un autre toolkit par eux-mêmes. Cela simplifie également et standardise la sauvegarde de paramètres pour des appels ultérieurs ou une même procédure.</p> <p>Au final, cela fait également partie du travail de fond pour une future fonctionnalité d’enregistrement de macro (très peu probable de la voir dans GIMP 3.0, mais c’est une partie du travail amenant à cette fonctionnalité puisque nous serons capables de sauver de manière fiable les paramètres utilisés lors du lancement des greffons.</p> <p><em>État</em> : bien que la partie principale de cette API soit terminée, la version finale nécessite d’autres ajustements, comme la représentation des paramètres qui n’est pas encore figée.</p> <h3 id="toc-prise-en-charge-de-langages-de-programmation-variés-bindings">Prise en charge de langages de programmation variés (<em>bindings</em>)</h3> <p>L’interface de programmation (<em>API</em>) est maintenant entièremement <em>introspectée</em> grâce à <a href="https://gi.readthedocs.io/en/latest/">GObject Introspection</a>. Cela implique que GIMP peut maintenant être scripté avec une large variété de langages informatiques. Voici ceux que nous avons testé à ce jour, et dont nous pouvons donc confirmer la viabilité (en plus de C et C++ bien sûr) :</p> <ul> <li>Python 3</li> <li>JavaScript</li> <li>Lua</li> <li>Vala</li> </ul> <p>L’une des principales différences avec l’ancienne méthode pour faire des interfaces intermédiaires pour scripter GIMP (par exemple GIMP 2.10 avait une interface Python 2) est que nous ne nécessitons plus de couche logicielle intermédiaire. C’est donc un énorme gain en maintenance et en stabilité.</p> <p>En outre les interfaces non-C de GIMP 2 se basaient habituellement sur le protocole de communication de GIMP appelé <code>PDB</code>, lequel n’est en fait qu’un sous-ensemble des fonctionnalités de la bibliothèque C <code>libgimp</code>. Au contraire, les nouvelles interfaces sont générées à partir de <code>libgimp</code> même, par conséquent les greffons en Python 3, Javascript, Lua ou Vala (ainsi que toute future prise en charge par introspection) auront les mêmes possibilités d’action que les greffons en C. C’est un nouveau monde qui s’ouvre aux développeurs de greffons GIMP !</p> <p>Une autre conséquence est que les interfaces résultantes sont globalement les mêmes dans tous ces langages de programmation, aux spécificités de syntaxe près.<br> Par exemple, si pour trouver l’intersection d’un <code>drawable</code> avec une sélection se fait ainsi en C :</p> <pre><code class="C"><span class="n">success</span> <span class="o">=</span> <span class="n">gimp_drawable_mask_intersect</span> <span class="p">(</span><span class="n">drawable</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">x</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">y</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">width</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">height</span><span class="p">);</span></code></pre> <p>En Javascript, ce sera :</p> <pre><code class="js"><span class="kd">let</span> <span class="p">[</span> <span class="nx">intersect</span><span class="p">,</span> <span class="nx">x</span><span class="p">,</span> <span class="nx">y</span><span class="p">,</span> <span class="nx">width</span><span class="p">,</span> <span class="nx">height</span> <span class="p">]</span> <span class="o">=</span> <span class="nx">drawable</span><span class="p">.</span><span class="nx">mask_intersect</span><span class="p">();</span></code></pre> <p>En Python 3:</p> <pre><code class="python"><span class="n">intersect</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">width</span><span class="p">,</span> <span class="n">height</span> <span class="o">=</span> <span class="n">drawable</span><span class="o">.</span><span class="n">mask_intersect</span><span class="p">()</span></code></pre> <p>Un autre exemple sympa est la manière dont les tableaux C avec paramètre additionnel de longueur sont gérés dans les langages qui ont une structure de données appropriée (et en particulier ne nécessitant pas l’information de longueur dans un argument à part).<br> Ainsi alors que vous copiez les pixels de multiples <em>drawables</em> ainsi en C :</p> <pre><code class="C"><span class="cm">/* Where @drawables is a C array of drawables, and @num_drawables</span> <span class="cm"> * indicates the size of this array.</span> <span class="cm"> */</span> <span class="n">gimp_edit_copy</span> <span class="p">(</span><span class="n">num_drawables</span><span class="p">,</span> <span class="n">drawables</span><span class="p">);</span></code></pre> <p>En Python 3, vous faites la même chose avec une liste Python, laquelle n’a pas besoin de l’argument <code>num_drawables</code> maintenant redondant avec les possibilités de la structure liste Python :</p> <pre><code class="python"><span class="n">Gimp</span><span class="o">.</span><span class="n">edit_copy</span><span class="p">([</span><span class="n">drawable1</span><span class="p">,</span> <span class="n">drawable2</span><span class="p">,</span> <span class="n">drawable3</span><span class="p">])</span></code></pre> <p>Bonus : non seulement les greffons non-C ont maintenant accès à toutes les fonctions proposées par GIMP, mais ils ont aussi accès à bien d’autres interfaces qui sont utilisées comme dépendances de GIMP. Ainsi un greffon peut utiliser n’importe quelle fonction de GLib/GIO, GTK, Pango, Cairo mais surtout babl et GEGL (ouvrant de nouvelles portes pour la manipulation de pixels et l’accès à une belle liste d’opérations graphiques). C’était probablement une des plus grosses limitations de l’interface Python 2 précédente, laquelle n’avait pas la possibilité de manipuler les pixels avec GEGL.</p> <p><em>État</em> : certains des développeurs ont regretté des fonctions spécifiques à l’ancienne interface Python 2, et en particulier la capacité de créer des dialogues simplement (sans utiliser GTK directement). Cette possibilité n’est pas dans GIMP 2.99.2 mais existera bien dans GIMP 3.0. En fait, après la sortie de GIMP 2.99.2, j’ai déjà ré-implémenté cela avec plus de fonctionnalités (c’est-à-dire des moyens de personnaliser l’organisation visuelle des options dans la boîte de dialogue notamment). Ce sera donc disponible dès GIMP 2.99.4 et sera extrêmement plus puissant que ce que l’interface Python 2 proposait.<br> Mais <strong>surtout</strong> : ce sera disponible à tous les langages, pas juste Python ou Scheme ! C’est l’un des autres gros avantages d’interfaces générées par introspection. Au lieu d’implémenter des supers fonctionnalités dans chaque couche de langage (similairement mais avec une implémentation et des possibilités différentes), on les fournit sur l’interface de base en C. En conséquence, tout développeur — quel que soit son langage de prédilection — aura accès à toutes les fonctionnalités.</p> <p>Enfin, notons que <code>Script-fu</code> ne fait pas partie des interfaces générées par introspection (bien qu’il existe des interfaces <em>GObject Introspection</em> pour Scheme, mais nous ne les avons pas encore testées) et fonctionne donc encore avec une couche d’extension supplémentaire, « à l’ancienne », avec toutes les limitations que cela implique. En outre, des problèmes à cause du changement d’interface ont déjà été soulevés (notamment l’impossibilité de créer des <code>GFile</code> comme mentionné plus haut). Nous devrons régler cela d’ici la sortie de GIMP 3.0.</p> <h3 id="toc-greffons-goat-exercise-promenade-de-chèvre">Greffons <em>goat exercise</em> (« promenade de chèvre »)</h3> <p>Pour chacune des interfaces de langages testées, nous avons créé un greffon appelé <em>promenade de chèvre</em> (<em>sic</em> - terme utilisé dans la traduction française officielle), lequel est une démo de création de greffon. C’est comme un <em>Hello World!</em> mais pour GIMP.</p> <p><em>NdT : Goat est une blagounette avec GEGL dont l’acronyme alternatif (« Genetically Engineered Goat, Large ») décrit son logo, <a href="https://fr.wikipedia.org/wiki/Fichier:GEGL.png">une chèvre à cinq pattes</a>.</em></p> <p>Chaque <em>promenade de chèvre</em> fait exactement la même chose dans son propre langage : elle crée une fenêtre de dialogue avec un label, des boutons et une <em>text view</em> (démo GTK+ et GLib/GIO) ; un des boutons déclenche un filtre modifiant le calque sélectionné (démo GEGL et démo GIMP API) ; tout cela pendant qu’elle montre son propre code source à l’intérieur de la <em>text view</em> (facilitant ainsi l’inspection de code depuis GIMP) et avec un bouton vous envoyant vers le fichier du dépôt (si vous préférez récupérer la dernière version, confortablement dans votre éditeur de code).</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31312f30362f67696d702d322d39392d322d72656c65617365642f67696d702d322e39392e322d676f61742d6578657263697365732e6a7067/gimp-2.99.2-goat-exercises.jpg" alt="Promenade-chèvre dans 5 langages" title="Source : https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/gimp-2.99.2-goat-exercises.jpg"><br> <em>Les 5 versions du greffon</em> promenade de chèvre <em>en Python 3, Javascript, Lua, C et Vala</em></p> <p>Ces greffons sont assez importants puisque nous prévoyons d’améliorer l’écosystème des greffons avec GIMP 3. Il constitue la première étape de greffons de démonstration auto-documentés (tout en faisant quelque chose d’un peu plus intéressant qu’un simple « Hello World »).</p> <p><em>État</em> : le code actuel des <em>promenades de chèvres</em> n’est pas toujours synchronisé avec les API les plus récentes puisque ce sont des éléments en constante évolution. Ils seront mis à jour avant la sortie finale.</p> <h3 id="toc-documentation-de-développement">Documentation de développement</h3> <p>Nous avons commencé à mettre par écrit de la documentation concernant le développement de greffons dans GIMP 3, et commencerons à publier progressivement quelques didacticiels. Nous espérons même être capable de remettre à flot notre site web pour développeurs qui a doucement sombré depuis de trop nombreuses années. Nous espérons que GIMP 3 viendra redonner un coup de fouet à l’écosystème des greffons de GIMP.</p> <p><em>État</em> : encore à un stade précoce, nous souhaitons la bienvenue à plus de contributeurs pour rendre cela possible.</p> <h2 id="toc-extensions">Extensions</h2> <p>Les extensions sont un nouveau format de fichier qui est simplement un regroupement de données (brosses, écrans d’accueil, motifs, dynamiques…) ou de greffons, associés à des méta-données (nom, description, copies d’écran, version, pré-requis…). Le but sera de permettre aux développeurs de greffons de publier leurs travaux sur des dépôts pour que tout le monde puisse chercher des greffons venant de tiers, les installer ou désinstaller, activer ou désactiver, et les mettre à jour directement dans GIMP.</p> <p>Le menu <code>Edit &gt; Manage Extensions</code> montre la fenêtre principale de dialogue. Dans l’onglet « System Extensions » en particulier, vous noterez « Official Demo Plug-ins » qui est notre première extension. Elle regroupe en fait toutes les greffons Promenades-chèvres dont nous avons parlé plus haut. Si vous le désactivez, vous remarquerez après un redémarrage (pour le moment, vous devez redémarrer GIMP pour en voir les effets) que le menu catégorie <code>Filters &gt; Development &gt; Goat Exercises</code> aura disparu.</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31312f30362f67696d702d322d39392d322d72656c65617365642f67696d702d322e39392e322d676f61742d65786572636973652d657874656e73696f6e2e706e67/gimp-2.99.2-goat-exercise-extension.png" alt="Une extension Promenade-chèvre" title="Source : https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/gimp-2.99.2-goat-exercise-extension.png"><br> <em>Les promenades de chèvres sont elles-mêmes notre première démo d’extension.</em></p> <p>Nous reviendrons sur cette fonctionnalité après que nous y aurons travaillé davantage. En particulier, nous fournirons de la documentation sur la manière de créer des extensions. C’est vraiment quelque chose que les créateurs de greffons et de ressources devraient garder en ligne de mire, puisque cela les aidera à partager leurs créations avec d’autres.</p> <p><em>État</em> : encore plus de travail à faire du côté de GIMP, particulièrement pour communiquer à propos des dépôts, et beaucoup plus de travail encore pour le dépôt officiel et le site web des extensions.</p> <h2 id="toc-linvasion-spatiale">L’invasion spatiale</h2> <p>"<em>Space invasion</em>" est le nom de code interne du travail initialement entamé en <a href="https://www.gimp.org/news/2018/08/19/gimp-2-10-6-released/#prepare-for-the-space-invasion">2018</a> dont le but était de mettre en place une prise en charge adaptée de l’espace colorimétrique sur l’ensemble du traitement des pixels. Dans les séries de GIMP 2.10, malgré une prise en charge de la gestion des couleurs dans le cœur du logiciel, les profils étaient quelquefois perdus pendant le traitement d’une opération et seulement réintroduits dans le résultat final, ce qui pouvait donner lieu à des valeurs erronées dans certains cas. </p> <p>Quiconque souhaitant comprendre plus avant ces problématiques peut lire l'<a href="https://www.patreon.com/posts/20264674">article de Øyvind Kolås</a> et en particulier <a href="https://gegl.org/NEWS.html#_gegl_0_4_6_2018_07_23">la note de sortie détaillée de GEGL 0.4.6</a> dans laquelle il explique tout cela très bien.</p> <p>Quelques améliorations de ce travail ont déjà été progressivement rétro-intégrées à diverses versions de GIMP 2.10.x, mais GIMP 3.0 devrait être la sortie ultime pour laquelle nous espérons régler cela à 100%.</p> <p><em>Status</em> : la branche de développement est beaucoup plus avancée sur ce sujet que la série des versions 2.10, mais davantage de travail est nécessaire. Divers aspects de GIMP sont toujours limités aux seules valeurs sRGB que ce soit pour l’affichage ou le traitement.</p> <h2 id="toc-cache-de-rendu">Cache de rendu</h2> <p>GIMP 3 a maintenant un cache de rendu qui conserve le résultat d’un changement d’échelle, la gestion des couleurs, des filtres d’affichage et des masques de canevas (pour les outils tels que <em>Fuzzy Select</em>). Cela donne une sensation de rapidité de l’interface en comparaison à la version GTK2 de GIMP.</p> <p>Il y a maintenant également un paramètre <em>Zoom Quality</em> dans <em>Preferences -&gt; Display</em>. Quand il est positionné sur <em>Fast</em>, GIMP fera une interpolation au voisin le plus proche depuis le mipmap de niveau immédiatement supérieur au lieu d’un filtrage linéaire ou fenêtré. Cela donne un coup de pouce léger mais permanent à l’affichage et à l’ensemble des modifications. Nous avons quelques idées pour améliorer cela davantage, comme de remplacer les pixels interpolés rapidement par une interpolation de meilleure qualité (mais plus lente) après un certain temps.</p> <p><em>État</em> : fini.</p> <h2 id="toc-règles-dimport-améliorées">Règles d’import améliorées</h2> <p>L’option de <strong>Politique de profil de couleur</strong> propose dorénavant un nouveau choix : "<em>Convertir au profil colorimétrique RVB préféré</em>" et l’action par défaut “Convertir” de la fenêtre d’importation convertira l’image au profil préféré (s’il a été défini, autrement on se réfère au profil prédéfini sRGB). La conversion au profil prédéfini sera toujours disponible comme une action secondaire. Si vous voulez toujours travailler avec le même profil donné, vous pouvez ainsi définir ce dernier ainsi que le comportement par défaut du logiciel à l’importation.</p> <p>De plus, une nouvelle <strong>Politique de rotation</strong> est proposé dans la fenêtre des Préférences, à côté de la <em>Politique de profil de couleur</em> (à la page <code>Préférences &gt; Importation et exportation d’images</code>) avec 3 options : « Demander ce qu’il faut faire », « Rejeter la méta-donnée sans rotation », et « Effectuer la rotation puis rejeter la méta-donnée ».</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31312f30362f67696d702d322d39392d322d72656c65617365642f67696d702d322e39392e322d696d706f72742d706f6c69636965732d70726566732e6a7067/gimp-2.99.2-import-policies-prefs.jpg" alt="Import Policies" title="Source : https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/gimp-2.99.2-import-policies-prefs.jpg"><br> <em>Politique de profil de couleur mise à jour et nouvelle Politique de rotation</em></p> <p>Les règles de rotation par méta-donnée étaient jusque-là gérées du côté des greffons d’importation, avec des fenêtres de dialogue générées par <code>libgimpui</code> et sauvées dans un <em>parasite</em> global. Toute la logique et l’interface graphique ont été déplacées dans le cœur du logiciel, au côté de la « Politique de profil de couleur ». Ceci implique que les greffons n’ont même plus besoin de gérer cela puisque ça se passera désormais génériquement et automatiquement comme spécifié par l’utilisateur à chaque nouvelle importation.</p> <p><em>État</em> : fini.</p> <h2 id="toc-curseurs-compacts">Curseurs compacts</h2> <p>Le <em>curseur compact</em> fut introduit dans <a href="https://www.gimp.org/news/2020/02/24/gimp-2-10-18-released/#compact-sliders">GIMP 2.10.18</a>. Dans la série des 2.10, il a été laissé comme une fonctionnalité optionnelle qui pouvait être désactivée dans la fenêtre de <em>Préférences</em>. Dans GIMP 3, c’est maintenant l’unique choix possible, sans option.</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31312f30362f67696d702d322d39392d322d72656c65617365642f67696d702d322e39392e322d636f6d706163742d7370696e2d7363616c652e706e67/gimp-2.99.2-compact-spin-scale.png" alt="Compact slider" title="Source : https://www.gimp.org/news/2020/11/06/gimp-2-99-2-released/gimp-2.99.2-compact-spin-scale.png"><br> <em>Nouveau curseur compact comme seule et unique option</em></p> <p>Remarquez que la couleur bleu clair sur la copie d’écran n’est pas un choix de notre fait : cette couleur est définie par le thème (or comme on le disait, on n’a pas encore de thème spécifique, il s’agit donc d’un thème système quelconque). Ce widget utilise les couleurs par défaut de <code>GtkProgressBar</code>. Elles peuvent donc être ajustées dans un thème personnalisé en changeant les couleurs de <code>GtkProgressBar</code> ou seulement les couleurs de ce widget en particulier (une fois de plus, bienvenue aux contributeurs de thèmes!).</p> <p><em>État</em> : fini.</p> <h2 id="toc-amélioration-continue-du-code">Amélioration continue du code</h2> <p>Pendant que nous portions d’anciennes fonctionnalités et en implémentions de nouvelles, beaucoup de travaux connexes ont été faits sur la structure du code. De nombreuses parties du code principal ont été réorganisées pour une meilleure maintenance.</p> <p>Bien que tout n’ait pas encore été porté, un travail de fond a été mis en place, tel que l’interface <code>GimpAction</code> pour ajouter une couche d’abstraction aux <code>GtkAction</code> (nous préparant à nous en séparer réellement à échéance, ce qui est une des grosses parties restantes pour la migration vers GTK3).</p> <p>De nombreuses autres parties sont constamment retravaillées et améliorées au cours d’un travail de fond incessant.</p> <p><em>État</em> : la réorganisation du code est une tâche constamment active, l’a toujours été et le sera toujours. Elle ne s’arrêtera jamais vraiment.</p> <h2 id="toc-paquets-téléchargeables">Paquets téléchargeables</h2> <h3 id="toc-flatpak-beta-disponible">Flatpak "<em>beta</em>" disponible</h3> <p>Cette version est disponible dans la branche “beta” de notre <a href="https://flathub.org/apps/details/org.gimp.GIMP">paquet Flathub officiel</a>, qui est une branche de publication masquée (vous ne trouverez pas cette information sur la page publique sur le site de Flathub). Voici la commande qui vous permettra d’installer GIMP 2.99.2 :</p> <pre><code>flatpak install --user https://flathub.org/beta-repo/appstream/org.gimp.GIMP.flatpakref </code></pre> <p>À partir de là, vous pourrez mettre à jour vers de nouvelles versions de développement dès qu’elles seront disponibles par ce biais (si votre bureau intègre Flatpak, il pourra même vérifier automatiquement de lui-même et les proposer).</p> <p>Il faut noter que Flatpak ne permet qu’une seule branche visible à la fois pour une même application, de sorte que si vous avez installé à la fois les versions stable et de développement avec Flatpak, votre bureau ne montrera que l’un ou l’autre. Pour changer de branche visible, il faut lancer la commande correspondante parmi les deux proposées ci-dessous :</p> <pre><code>flatpak make-current --user org.gimp.GIMP beta flatpak make-current --user org.gimp.GIMP stable </code></pre> <p>Certains ont aussi créé des raccourcis qui lancent explicitement la commande <code>flatpak<br> run org.gimp.GIMP//beta</code> (ou <code>stable</code> respectivement), comme solution de secours pour obtenir des icônes pour les deux versions.</p> <h3 id="toc-windows">Windows</h3> <p>Comme d’habitude, nous proposons un installateur pour GIMP sous Windows, que vous trouverez sur la <a href="https://www.gimp.org/downloads/devel/">page de téléchargement de développement</a>.</p> <p>Il peut manquer quelques fonctionnalités. En particulier, vous ne trouverez pas d’interface JavaScript sur le paquet Windows en raison de la complexité de certaines dépendances. Nous corrigerons ce souci dans de futures pré-versions en chemin vers GIMP 3.</p> <h3 id="toc-macos">macOS</h3> <p>Notre empaqueteur pour macOS n’est toujours pas complètement revenu, donc malheureusement nous n’avons pas de paquet macOS officiel. Comme toujours, nous vous rappelons que GIMP est un logiciel libre développé par une communauté. Chacun peut devenir un mainteneur officiel, et avoir plusieurs contributeurs sur la question permet d’assurer une meilleure pérennité.</p> <p>Si vous êtes intéressé, n’hésitez pas à nous contacter sur notre canal développeur sur <a href="https://www.gimp.org/irc.html">IRC</a> : <code>#gimp</code>.</p> <h2 id="toc-et-ensuite">Et ensuite ?</h2> <p>Comme vous le voyez, énormément de choses ont été faites (le fichier <a href="https://gitlab.gnome.org/GNOME/gimp/-/blob/4f201556967d9e7c868601698e9e3d957c1c27ea/NEWS#L46"><code>NEWS</code></a> donne bien plus de détails). Le gros du travail a déjà été fait. Ce qui reste maintenant est le peaufinage. Ce n’est cependant pas si simple, car les décisions finales et l’attention aux petits détails sont le plus difficile. Nous voulons publier un GIMP 3 d’envergure, et devons donc être particulièrement méticuleux. Voilà où nous en sommes et c’est pourquoi nous publions cette première version de développement.</p> <p>Ce <a href="https://www.patreon.com/posts/what-remains-to-40087754">rapport de développement</a> détaille assez précisément tout ce qui reste à faire, et vous remarquerez à quel point il suit vraiment de près les changements de GIMP 2.99.2. C’est notamment du côté de l’API — bien que la plupart des utilisateurs ne la voient pas — qu’il faut notamment s’assurer de ne pas faire d’erreur avant publication, car notre API devra rester stable tout au long de la série des 3.x. Une fois que ce sera fait, nous voudrons garder les interfaces de <code>libgimp</code> 3.0.0 inchangées à moins d’une exception (par exemple parce que nous découvrons des bogues qui rendent une fonction inutile). Cela nous prendra du temps.</p> <p>Il y a certainement d’autres points sur lesquels de l’aide fera la différence, que ce soit dans les greffons, le code, l’interface utilisateur ou l’interface de programmation. C’est pourquoi nous avons besoin de plus de paires d’yeux pour résoudre autant de petits problèmes que possible.</p> <h2 id="toc-gimp-a-25-ans">GIMP a 25 ans!</h2> <p>Il y a pas mal d’anniversaires ronds de logiciels libres dernièrement. Pour ne pas déroger à la règle, GIMP vient de <a href="https://www.gimp.org/news/2020/11/21/25-years-of-gimp/">fêter ses 25 ans</a>!… un âge dont peu de logiciels encore en activité peuvent se targuer.</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31312f32312f32352d79656172732d6f662d67696d702f323032302d47494d502d32352d74682d62697274686461792e6a7067/2020-GIMP-25-th-birthday.jpg" alt="“Joyeux 25ᵉ anniversaire GIMP!” par Aryeom, Creative Commons by-sa 4.0" title="Source : https://www.gimp.org/news/2020/11/21/25-years-of-gimp/2020-GIMP-25-th-birthday.jpg"><br> <em>“Joyeux 25ᵉ anniversaire GIMP!” par Aryeom, Creative Commons by-sa 4.0</em></p> <p><em>Note</em>: une <a href="https://youtu.be/rvPQ5KtM6aY">vidéo accélérée (<em>timelapse</em>) de ce dessin est disponible, avec commentaires</a> audios (et textuels dans des sous-titres notamment français). J’aime particulièrement beaucoup les commentaires, car ils apportent un autre niveau d’implication et de réflexion sur ce qui peut sembler être juste un petit dessin irréfléchi pour beaucoup de gens.<br> Le fichier source du dessin (format de GIMP <code>XCF</code>, comme d’habitude sous licence Creative Commons by-sa 4.0, vous autorisant à étudier et modifier l’œuvre pour faire une œuvre dérivée!) est disponible sur la <a href="https://www.patreon.com/posts/25-years-of-gimp-44863356">page Patreon associée</a>.</p> <h3 id="toc-un-peu-dhistorique">Un peu d’historique</h3> <p>En effet, c’est le 21 novembre 1995 qu’un étudiant, Peter Mattis <a href="https://www.gimp.org/about/prehistory.html#november-1995-an-announcement">annonce pour la première fois</a> un logiciel appelé « The GIMP » (<em>the General Image Manipulation Program</em>, le “General” deviendra par la suite “GNU” et l’article "<em>the</em>" disparaîtra), et livre un premier code publiquement, développé avec son collègue Spencer Kimball. Notons que les 2 étudiants abandonneront rapidement GIMP (vers 1998), sans vraiment penser à la relève (je pense qu’ils ne s’attendaient pas à l’engouement que cela créerait), qui fut donc majoritairement développé par la communauté depuis.</p> <p>D’ailleurs dans un <a href="https://retina.elpais.com/retina/2020/12/18/tendencias/1608306962_883235.html">article récemment paru dans El Paìs</a>, second plus gros journal papier d’Espagne et journal en ligne le plus lu en langue espagnole, les 2 compères (maintenant beaux-frères) expliquent encore régulièrement utiliser GIMP même s’ils pensent qu’il n’y a probablement plus aucune ligne d’eux dedans de nos jours.<br> Je ne donne pas ce lien vers cet article au hasard, car il sort des centaines d’articles sur GIMP tous les ans, mais pour celui-ci (sorti il y a quelques jours), la journaliste nous a contactés (équipe actuelle de GIMP) ainsi que vraisemblablement les 2 auteurs originaux, et pour une fois on y trouve un vrai travail de synthèse journalistique (et pas juste du copier-coller de nos propres annonces). C’est appréciable de voir que le vrai journalisme 📰 existe encore! 🙂<br> Même s’il n’est pas en français, je conseille donc de lire cet article, car il donne un historique avec une vue et des données propres (si vous ne parlez pas espagnol, les traducteurs automatiques sont très performants de nos jours).</p> <p>Dans les autres petites perles sur les auteurs originels, j’ai aimé <a href="https://youtu.be/H-R8qgXxFb0?t=3422">cette question finale à Spencer Kimball (à 57:03)</a> dans une interview vidéo récente au sujet de son projet professionnel actuel (une base de donnée distribuée, donc peu de rapport avec du graphisme; apparemment <a href="https://github.com/cockroachdb/cockroach">cockroachdb</a> est libre, les fondamentaux restent !). Je n’ai pas écouté l’interview complète, mais je me suis demandé ce que ce dernier considère en effet comme ce dont il est le plus fier. Ça ne manque pas : <strong>à la question sur ce dont il est le plus fier dans sa carrière</strong>, GIMP reste (et restera peut-être à jamais?) sa plus grande fierté:</p> <blockquote> <p>GIMP reste stable en favori. Ce n’est même pas que je suis si fier de ce que j’y ai fait. C’est le projet dans son ensemble. Ça fait 27 (<em>sic — note de Jehan: avaient-ils commencé à coder 2 ans avant la première sortie de code ? Pas impossible !</em>) ans. À chaque fois que je le télécharge, ou que j’ai un nouvel ordinateur, il est meilleur que la fois précédente. Il y a constamment des gens que je n’ai jamais rencontrés qui continuent à travailler dessus. Donc je suppose qu’être à l’origine de cela, en tant qu’auteur originel, c’est quelque chose qui me rend fier. Je pense que si ça avait été l’unique chose que j’avais faite dans ma vie, ça aurait été suffisant. Donc : GIMP.</p> </blockquote> <p>Traduction personnelle d’après l'<a href="https://youtu.be/H-R8qgXxFb0?t=3422">original</a>:</p> <blockquote> <p>The GIMP remains a steady favorite to me. It's not even that I'm so proud of what I did on the GIMP. It's the larger project. It's been 27 (<em>sic</em>) years. Every time I download it, I get a new computer, it's better than the last time I downloaded it. There is always people out there I've never met that are working on it. So I guess, being behind them, as the original author, it is something that does make me quite proud and I feel like… if that's all I did in this life, that would be enough. So euh… GIMP.</p> </blockquote> <p>Merci donc à ces derniers d’avoir démarré ce projet, même si c’était juste pour s’amuser en tant qu’étudiants !</p> <p>Quoi qu’il en soit, nous y sommes, 25 ans après, des <a href="https://www.openhub.net/p/gimp">centaines de contributeurs plus tard</a>, du code à foison et des millions d’utilisateurs dans le monde. C’est en effet assez ébouriffant quand on y pense. C’est aussi l’un des rares logiciels de cette envergure qui est resté entièrement communautaire notamment dans son système de développement et de décision (un fait peu connu, je pense, et pourtant l’une des caractéristiques que j’adore chez GIMP et que j’espère qu’on pourra protéger aussi longtemps que possible).</p> <h3 id="toc-un-logiciel-qui-fait-avancer-tout-le-monde">Un logiciel qui fait avancer tout le monde</h3> <p>Ce que j’ai toujours adoré avec GIMP, c’est aussi à quel point ce logiciel a eu un impact positif sur le logiciel libre. Pendant ces 25 ans, que s’est-il donc passé autour de GIMP ?</p> <p>Le projet a créé la librairie graphique GTK (<em>GIMP Toolkit</em>), laquelle a donné naissance à plusieurs environnements de bureau (tels que GNOME, XFCE et d’autres) et des logiciels à ne plus pouvoir les compter. Cette bibliothèque est même possiblement la raison pour laquelle Qt est finalement devenu libre à son tour (on rappelle que Qt était propriétaire à ses débuts et c’est la raison pour laquelle des développeurs ont initialement extrait GTK du code de GIMP, le renommant au passage GTK+ avant de récemment revenir aux sources en l'<a href="https://lwn.net/Articles/779305/">appelant à nouveau GTK</a>), afin de ne pas perdre la clientèle de tous les développeurs de logiciels libres, bien que cette supposition restera probablement à jamais spéculation (les décisions <strong>réelles</strong> d’entreprises étant rarement publiques).</p> <p>Puis quelques développeurs du milieu de l’industrie du cinéma hollywoodien ont commencé à travailler sur un nouveau moteur graphique, <a href="https://gegl.org/">GEGL</a>. 20 ans plus tard, GIMP l’utilise pour ses traitements de pixel principaux et nous continuons à faire évoluer cette machinerie qui s’améliore au fil des jours. Divers autres logiciels utilisent désormais GEGL pour leurs propres traitements graphiques.</p> <p>GIMP est aussi tellement complet qu’on améliore constamment l’écosystème autour de nous. Par exemple si on regarde mes contributions hors GIMP, on constate ainsi des <a href="https://www.openhub.net/accounts/Jehan/">patchs dans des dizaines de <em>briques</em> importantes</a> du Logiciel Libre, et ce sans compter les centaines de rapports de bugs et aides au diagnostic de bug qui ont aussi abouti à des corrections ou améliorations. La même chose peut se vérifier d’autres développeurs de GIMP (comme notre mainteneur adoré, <a href="https://www.openhub.net/accounts/mitch">Mitch</a>).</p> <p>En outre GIMP est utilisé assez massivement dans les milieux universitaires, des équipes de recherche en traitement d’images notamment. Par exemple l’équipe CNRS du logiciel <a href="https://gmic.eu/">G'MIC</a>, avec laquelle j’ai travaillé en 2019, a initialement fait un plug-in pour GIMP, faisant de G'MIC une référence en collection de filtres. Je ne pense pas que David Tschumperlé qui lit aussi LinuxFr.org me contredira si je dis que GIMP a aidé à propulser G'MIC.<br> Nous avons régulièrement des retours d’autres universités qui ont utilisé GIMP dans des ateliers, des formations, parfois dans des projets de design logiciels, d’utilisabilité (plusieurs par le passé, notamment on se souvient de projet dans des universités belge et allemande au moins) ou de graphisme. Par exemple, ces dernières années, une université indienne (KBC North Maharashtra University) a travaillé sur la traduction complète de GIMP en <a href="https://fr.wikipedia.org/wiki/Marathi_(langue)">marathi</a> et a organisé des ateliers et une formation autour de GIMP (apparemment certains cours autour de l’usage de GIMP, et d’autres cours sur la localisation logicielle avec des linguistes marathi). Et pour quelques-uns de ces projets dont on a vent, combien d’autres projets dont on a jamais entendu parler ?!<br> On a même eu parfois des retours de gens de la NASA qui nous disent utiliser GIMP !<br> Notre logiciel est donc une aide pour tous ces organismes publics ! 🥴</p> <p>Dans les divers autres sujets trollifères autour de GIMP, notre mascotte de toujours, Wilber, fait aussi régulièrement parler d’elle. Nous rappelons alors aux gens que GIMP est communautaire, que nous aimons bien les personnages marrants et que cela n’est pas antithétique avec le travail de qualité, ni même professionnel. Non nous ne changerons pas pour une interface aseptisée pour faire bien dans les réunions entre <em>managers</em>! 🧑‍💼🤪</p> <p>On appréciera aussi que GIMP co-crée en 2006 le <a href="https://libregraphicsmeeting.org/">Libre Graphics Meeting</a> en extension de ses propres réunions de développeurs annuels pendant ces années-là. En effet les développeurs de l’époque se disent que le graphisme libre devrait rassembler les gens des divers projets et autour plutôt que créer des divisions. Depuis le projet GIMP a participé à chacune des réunions (Aryeom et moi-même n’en avons manqué personnellement aucune depuis 2013, lors de notre entrée dans l’équipe de GIMP), a même co-financé la réunion à de nombreuses reprises (notamment lors des périodes difficiles) et a aidé financièrement divers contributeurs d’autres projets à s’y rendre (notamment ces dernières années, de mémoire, des gens des équipes de MyPaint, darktable, Kdenlive, GTK…). Notre but est encore et toujours d’améliorer l’écosystème du libre dans sa globalité, notamment dans le graphisme et l’audiovisuel.</p> <p>Toutes ces choses sont des anecdotes que j’apprécie particulièrement dans l’histoire de GIMP (même si je n’ai participé moi-même qu’à une portion de ces faits). J’aime ce côté communautaire et altruiste de GIMP. C’est pour moi exactement l’aspect qui m’attire et pour lequel je m’accroche au logiciel libre (pas tous les projets sont ainsi, loin de là). Ce projet nous a vraiment permis de découvrir un monde particulier duquel nous sommes heureux de faire partie. 💌</p> <h3 id="toc-apports-de-zemarmot">Apports de ZeMarmot</h3> <p>Le projet <a href="https://film.zemarmot.net/">ZeMarmot</a>, que j’ai cofondé avec Aryeom, et qui fut rattaché à l’association <a href="https://libreart.info/">LILA</a>, eut bien sûr son impact puisque nous avons commencé à améliorer GIMP sur la base d’un usage réel au quotidien. Notamment, non seulement les fonctionnalités et une meilleure expérience de création nous motivait, mais aussi et toujours la stabilité du logiciel. Lorsque nous avons découvert GIMP en 2012 (on connaissait tous deux déjà de nom, mais pas “réellement”), je n’aurais pas pu conseiller à quelqu’un d’y passer professionnellement (je me rappelle encore de mes premières tentatives avec Aryeom, je pense qu’il nous a fallu 15 minutes pour faire marcher la tablette graphique et 5 minutes pour faire planter GIMP). De nos jours, après le travail accompli, on peut.</p> <p>D’ailleurs en parallèle, nous avons aussi participé à quelques projets professionnels tiers, uniquement associatifs et pour des causes que nous apprécions (nous ne voulons pas travailler pour des grosses entreprises dont nous n’aimons pas l’impact sur le monde). Par exemple, nous avons fait 2 projets internes pour l’association des <em>Petits Frères des Pauvres</em> (un petit film institutionnel et un jeu de société pour la formation des bénévoles), nous avons aussi entièrement produit la vidéo <a href="https://framatube.org/videos/watch/9c9de5e8-0a1e-484a-b099-e80766180a6d">"What is Peertube?"</a> pour Framasoft, vidéo toujours à ce jour la plus vue et “plussée” de l’instance <a href="https://joinpeertube.org/">Peertube</a> de Framasoft, ce qui est assez méta ! D’autres associations nous ont contacté, notamment une association écologique, bien que nous essayons de limiter les projets secondaires pour nous focaliser sur <em>ZeMarmot</em> (mais ce n’est pas toujours évident de refuser tant que <em>ZeMarmot</em> n’est pas viable). Quand je dis <em>nous</em> pour beaucoup de ces projets, j’entends bien sûr surtout Aryeom (elle est alors celle qui fait le gros du travail !). Moi je fais le soutien technique !</p> <p>En plus de cela, depuis maintenant 3 ans d’affilée, Aryeom donne des cours universitaires avec GIMP pour 2 classes de licences professionnelles (troisième année de licence), dans l’université de Cergy-Pontoise: une classe de retouche d’images pour la licence « Patrimoine et modélisation 3D » et une classe d’illustration numérique pour la licence “Infographie”. Le responsable de licence est très content, d’année en année, prouvant la place incontestable de GIMP dans le monde professionnel (sans compter que nous entendons régulièrement que d’autres universités, entreprises ou organismes publics dans le monde font un usage très courant de GIMP, comme je disais plus haut).</p> <p>Tous les contacts professionnels nous ont toujours rappelé et ont été contents des résultats. Il nous semble évident que le logiciel libre en général, et GIMP en particulier, est utilisable dans le milieu professionnel et nous le prouvons au quotidien.</p> <h2 id="toc-financer-le-développement-de-gimp">Financer le développement de GIMP</h2> <p>Pour conclure, nous vous rappelons que vous pouvez <a href="https://www.gimp.org/donating/">donner au projet et financer personnellement plusieurs développeurs GIMP</a> qui rendent tout cela possible. C’est aussi une façon de renvoyer l’ascenseur et accélérer le développement de GIMP si vous appréciez le projet. Cette page propose 3 manières de donner: le projet <em><a href="https://film.zemarmot.net/fr/donate">ZeMarmot</a></em> (dont je parle dans le prochain paragraphe en détail), le financement de <a href="https://www.patreon.com/pippin">Øyvind Kolås</a>, le mainteneur de GEGL (notre moteur graphique) et la donation au projet (qui ne peut servir que pour du financement communautaire, donc pour des financements de déplacements aux réunions ou pour du matériel de bénévole typiquement). Seuls les financements d’Øyvind et de <em>ZeMarmot</em> permettent de rémunérer du développement pour GIMP à ce jour.</p> <p>Pour parler en particulier du <a href="https://film.zemarmot.net/fr/donate">financement du projet <em>ZeMarmot</em></a> dont je fais partie (<a href="https://liberapay.com/ZeMarmot/">Liberapay</a>, <a href="https://www.patreon.com/zemarmot">Patreon</a>, <a href="https://en.tipeee.com/zemarmot">Tipeee</a> ou <a href="https://libreart.info/fr/donate">donations directes à l’association LILA</a>), nous sommes donc responsables d’une grande partie des évolutions de GIMP ces dernières années (je suis d’ailleurs le contributeur le plus actif sur les 2 dernières années, avec plus de 1000 <em>commits</em> rien qu’en 2019 et 2020, et rien qu’en comptant le dépôt principal de GIMP ; et ce sans compter non plus les très nombreux retours d’Aryeom qui font bouger les choses aussi d’une autre manière, moins visible et moins chiffrable). Or notre projet cherche encore et toujours une stabilité financière (surtout après cette année difficile et un licenciement pour raisons économiques de mon précédent emploi !). Cela nous oblige d’ailleurs régulièrement à accepter d’autres emplois (développement pour moi et/ou films ou projets graphiques tiers pour Aryeom, comme j’expliquais plus haut) qui repoussent le développement libre et le projet de film libre d’autant. Imaginez la vitesse à laquelle on pourrait faire avancer les choses, si on pouvait travailler sur GIMP et <em>ZeMarmot</em> à temps plein ?! 😻<br> C’est pourquoi <strong>nous appelons encore à la participation au financement de notre projet ZeMarmot</strong>. Mon petit pitch habituel est de considérer cela comme un investissement pour un meilleur monde logiciel (GIMP et logiciel libre !) et audiovisuel (des œuvres audiovisuelles libres !). Donc en espérant que ces raisons vous interpellent aussi… aiderez-vous <em>ZeMarmot</em> et GIMP en cette fin d’année 2020 ? 👍<br> <a href="https://film.zemarmot.net/fr/donate?referent=linuxfr"><img src="//img.linuxfr.org/img/68747470733a2f2f66696c6d2e7a656d61726d6f742e6e65742f696d616765732f5a654d61726d6f74343638783630706f75724c696e757866722e6a7067/ZeMarmot468x60pourLinuxfr.jpg" alt="Soutenez ZeMarmot et GIMP!" title="Source : https://film.zemarmot.net/images/ZeMarmot468x60pourLinuxfr.jpg"></a></p> <p>🥳 Sur cette conclusion, nous vous souhaitons un très bon noël, malgré la situation sanitaire particulière ainsi qu’une année 2021 meilleure que 2020 ! 🎉</p> </div><div><a href="https://linuxfr.org/news/25-ans-de-gimp-et-version-de-developpement-2-99-2-premiers-pas-vers-gimp-3.epub">Télécharger ce contenu au format EPUB</a></div> <p> <strong>Commentaires :</strong> <a href="//linuxfr.org/nodes/122021/comments.atom">voir le flux Atom</a> <a href="https://linuxfr.org/news/25-ans-de-gimp-et-version-de-developpement-2-99-2-premiers-pas-vers-gimp-3#comments">ouvrir dans le navigateur</a> </p>
    • Li chevron_right

      GIMP 2.10.22 : consolidation des formats

      Jehan · pubsub.eckmul.net / linuxfr_news · Sunday, 18 October, 2020 - 10:01 edit · 31 minutes

    <div><p>GIMP 2.10.22 est sorti le 4 octobre dernier. Le cœur du logiciel ne connaît pas de bouleversements avec cette nouvelle version ; en revanche, cette sortie se démarque par diverses contributions portant sur les formats d’image. Voici les quelques nouveautés marquantes :</p> <ul> <li>nouvelle prise en charge des images <a href="https://en.wikipedia.org/wiki/AV1#AV1_Image_File_Format_(AVIF)">AVIF</a> ;</li> <li>amélioration de la prise en charge des fichiers <a href="https://fr.wikipedia.org/wiki/High_Efficiency_Image_File_Format">HEIC</a> et <a href="https://fr.wikipedia.org/wiki/Corel_Paint_Shop_Pro">PSP</a> ;</li> <li>amélioration de l’exportation multicalque au format <a href="https://fr.wikipedia.org/wiki/Tagged_Image_File_Format">TIFF</a> ;</li> <li>meilleur traitement de la métadonnée <a href="https://fr.wikipedia.org/wiki/Exchangeable_image_file_format" title="Exchangeable image file format">EXIF</a> « Orientation » ;</li> <li>nouvelle option « échantillonner sur tous les calques » pour les outils des opérations <a href="https://fr.wikipedia.org/wiki/GEGL" title="Définition Wikipédia">GEGL</a>.</li> </ul> <p>Le détail se trouve dans la seconde partie de la dépêche.</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31302f30372f67696d702d322d31302d32322d72656c65617365642f3230323031302d77696c6265722d616e642d636f2e6a7067/202010-wilber-and-co.jpg" alt="Wilber Learning never stops! / Wilber and co. comics strip “Wilber Learning never Stops!” by Aryeom, Creative Commons By‑SA 4.0" title="Source : https://www.gimp.org/news/2020/10/07/gimp-2-10-22-released/202010-wilber-and-co.jpg"> <em>« L’apprentissage de Wilber ne s’arrête jamais ! », par <a href="https://film.zemarmot.net/">Aryeom</a>, Creative Commons By‑SA 4.0</em></p> </div><ul><li>lien nᵒ 1 : <a title="https://www.gimp.org/news/2020/10/07/gimp-2-10-22-released/" hreflang="en" href="https://linuxfr.org/redirect/107021">Annonce et notes de version</a></li><li>lien nᵒ 2 : <a title="https://www.gimp.org/downloads/" hreflang="en" href="https://linuxfr.org/redirect/107022">Télécharger GIMP 2.10.22</a></li><li>lien nᵒ 3 : <a title="https://linuxfr.org/news/gimp-2-10-20-a-votre-sante" hreflang="en" href="https://linuxfr.org/redirect/107051">Dépêche précédente sur LinuxFr.org, pour la version 2.10.20</a></li><li>lien nᵒ 4 : <a title="https://www.gimp.org/donating/" hreflang="en" href="https://linuxfr.org/redirect/107052">Page de donation</a></li><li>lien nᵒ 5 : <a title="https://gitlab.gnome.org/GNOME/gimp/" hreflang="en" href="https://linuxfr.org/redirect/107053">Dépôt de source et suivi de bogues</a></li><li>lien nᵒ 6 : <a title="https://film.zemarmot.net/fr/" hreflang="fr" href="https://linuxfr.org/redirect/107054">Projet ZeMarmot (dont fait partie l’auteur de l’article, développeur majeur de GIMP)</a></li></ul><div><h2 class="sommaire">Sommaire</h2> <ul class="toc"> <li> <a href="#toc-am%C3%A9liorations">Améliorations</a><ul> <li> <a href="#toc-formats-de-fichier">Formats de fichier</a><ul> <li><a href="#toc-heif-prise-en-charge-am%C3%A9lior%C3%A9e-de-heic-et-ajout-de-lavif">HEIF : prise en charge améliorée de HEIC et ajout de l’AVIF</a></li> <li><a href="#toc-psp">PSP</a></li> <li><a href="#toc-tiff">TIFF</a></li> <li><a href="#toc-bmp-dds-jpeg-webp-xpm">BMP, DDS, JPEG, WebP, XPM…</a></li> </ul> </li> <li><a href="#toc-meilleure-gestion-de-la-m%C3%A9tadonn%C3%A9e-exif-orientation">Meilleure gestion de la métadonnée EXIF « Orientation »</a></li> <li><a href="#toc-%C3%89chantillonner-sur-tous-les-calques-dans-loutil-daction-gegl"> « Échantillonner sur tous les calques » dans l’outil d’action GEGL</a></li> <li><a href="#toc-greffon-spyrogimp">Greffon Spyrogimp</a></li> <li><a href="#toc-conversion-en-couleurs-index%C3%A9es-am%C3%A9lior%C3%A9e">Conversion en couleurs indexées améliorée</a></li> </ul> </li> <li> <a href="#toc-r%C3%A9glages-par-d%C3%A9faut">Réglages par défaut</a><ul> <li><a href="#toc-loption-%C3%A9chantillonnage-sur-tous-les-calques-est-dor%C3%A9navant-activ%C3%A9e-par-d%C3%A9faut-pour-le-s%C3%A9lecteur-par-couleur">L’option « échantillonnage sur tous les calques » est dorénavant activée par défaut pour le sélecteur par couleur</a></li> <li><a href="#toc-mattinglevin-devient-le-moteur-dextraction-de-premier-plan-pard%C3%A9faut">« Matting Levin » devient le moteur d’extraction de premier plan par défaut</a></li> </ul> </li> <li> <a href="#toc-d%C3%A9bogage">Débogage</a><ul> <li><a href="#toc-opencl-est-maintenant-consid%C3%A9r%C3%A9-comme-exp%C3%A9rimental">OpenCL est maintenant considéré comme expérimental</a></li> <li><a href="#toc-playground-invisible-pard%C3%A9faut">Playground invisible par défaut</a></li> </ul> </li> <li> <a href="#toc-l%C3%A9cosyst%C3%A8me-gimp">L’écosystème GIMP</a><ul> <li><a href="#toc-les-greffons-et-manuels-dans-le-flatpak-gimp">Les greffons et manuels dans le Flatpak GIMP</a></li> <li><a href="#toc-gegl-et-babl">GEGL et babl</a></li> <li><a href="#toc-int%C3%A9gration-continue">Intégration continue</a></li> </ul> </li> <li><a href="#toc-disponibilit%C3%A9-de-binaires-macos">Disponibilité de binaires macOS</a></li> <li><a href="#toc-contributeurs">Contributeurs</a></li> <li><a href="#toc-et-ensuite">Et ensuite ?</a></li> </ul> <h2 id="toc-améliorations">Améliorations</h2> <h3 id="toc-formats-de-fichier">Formats de fichier</h3> <p>Le point fort de cette version est clairement les contributions sur les greffons de format de fichier.</p> <h4 id="toc-heif-prise-en-charge-améliorée-de-heic-et-ajout-de-lavif">HEIF : prise en charge améliorée de HEIC et ajout de l’AVIF</h4> <p>AVIF est la variante <a href="https://fr.wikipedia.org/wiki/High_Efficiency_Image_File_Format" title="High Efficiency Image File Format">HEIF</a> qui utilise la compression <a href="https://fr.wikipedia.org/wiki/AV1_(codec)" title="Alliance for open media Video codec">AV1</a> (tandis que le format HEIF « de référence » utilise <a href="https://fr.wikipedia.org/wiki/H.265/HEVC" title="High Efficiency Video Coding">HEVC</a>). Ce format d’encodage vidéo, développé par l’organisation <em><a href="https://fr.wikipedia.org/wiki/Alliance_for_Open_Media">Alliance for Open Media</a></em>, était grandement attendu car ouvert et libre de droits.</p> <p>AVIF est déjà pris en charge sur le Web par Firefox (à titre expérimental, en activant <code>image.avif.enabled</code> dans <code>about:config</code>), Chrome et Opera, ce qui en fait un sérieux prétendant parmi les formats d’images Web.</p> <p>AVIF est désormais pris en charge par GIMP, à l’importation et à l’exportation. Qui plus est, les fichiers HEIF (AVIF et HEIC) peuvent maintenant être importés et exportés en haute précision de couleurs (10 et 12 bits par canal de couleur).</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31302f30372f67696d702d322d31302d32322d72656c65617365642f686569662d617669662d686967682d6269742d64657074682e6a7067/heif-avif-high-bit-depth.jpg" alt="AVIF est pris en charge" title="Source : https://www.gimp.org/news/2020/10/07/gimp-2-10-22-released/heif-avif-high-bit-depth.jpg"> <em>Prise en charge d’AVIF et de la haute précision des couleurs pour AVIF/HEIF, de même que l’importation des profils NCLX et des métadonnées.</em></p> <p>Enfin, les profils de couleur NCLX et les métadonnées sont à présent correctement importés.</p> <p>Ces améliorations proviennent toutes des géniales contributions de Daniel Novomesky.</p> <h4 id="toc-psp">PSP</h4> <p>Le greffon de lecture des fichiers PSP (Paint Shop Pro) a reçu de nombreuses corrections de bogues et améliorations. Les calques matriciels des images PSP sur la version 6 sont désormais pris en charge, ainsi que les images 16 bits en nombre entier, celles en niveaux de gris et en couleurs indexées.</p> <p>De plus, les modes de fusion PSP sont désormais mieux convertis en modes de calque GIMP pour un rendu correct.</p> <p>Le module d’importation est également beaucoup plus robuste et est même capable de corriger les erreurs de certains fichiers qui peuvent avoir été mal exportés par un logiciel tiers. Il gère également mieux certains cas particuliers comme les noms de calques de longueur nulle.</p> <p>Toutes ces améliorations ont été apportées par Jacob Boerema, un des plus récents contributeurs clés de GIMP.</p> <h4 id="toc-tiff">TIFF</h4> <p>L’exportation <a href="https://fr.wikipedia.org/wiki/Tagged_Image_File_Format" title="Tagged Image File Format">TIFF</a> multi‑calque a été améliorée en permettant de recadrer les calques aux limites de l’image dans l’image exportée. En effet, TIFF n’a pas de concept de limites d’image globale, seulement des limites de calque. Par conséquent, le recadrage des calques est le seul moyen d’appliquer les limites de l’image.</p> <p>Évidemment, vous ne souhaitez peut‑être pas ce recadrage, il est possible que vous vouliez obtenir des calques de différentes tailles. C’est pourquoi la fonction est disponible en tant que nouvelle case optionnelle « <em>Recadrer les calques en fonction des limites de l’image</em> » dans la boîte de dialogue d’exportation.</p> <p>Il y a eu d’autres corrections de bogues et améliorations dans le greffon TIFF.</p> <h4 id="toc-bmp-dds-jpeg-webp-xpm">BMP, DDS, JPEG, WebP, XPM…</h4> <p>D’autres prises en charge de formats de fichier ont été améliorées. En particulier :</p> <ul> <li>BMP inclut désormais systématiquement des masques de couleur lors de l’exportation de BMP avec des informations d’espace colorimétrique, comme l’exige la spécification <code>BITMAPV5HEADER</code>.</li> <li>L’importation DDS est maintenant un peu plus permissive, permettant de charger certains fichiers avec des signaux d’en-tête invalides concernant la compression, alors qu’il est possible de connaître la bonne compression à partir d’autres signaux. Cela permet de récupérer des fichiers DDS invalides exportés par d’autres logiciels.</li> <li>La détection des formats JPEG et WebP est améliorée.</li> <li>XPM n’exporte plus de couleur « Aucune » (transparente) lorsqu’elle est inutilisée. L’exportation d’une couleur inutilisée n’était pas un bogue en soi mais n’était pas très bien gérée par certains logiciels tiers.</li> </ul> <h3 id="toc-meilleure-gestion-de-la-métadonnée-exif-orientation">Meilleure gestion de la métadonnée EXIF « Orientation »</h3> <p>Lorsqu’une image avec l’étiquette « Orientation » est importée, GIMP propose de faire pivoter l’image. Dans la précédente version, en cas de refus, l’étiquette était conservée, y compris à l’exportation. Ainsi, à l’ouverture dans un autre logiciel, la rotation non voulue pouvait s’appliquer.</p> <p>Désormais, l’étiquette « Orientation » est supprimée, que la rotation d’image ait été acceptée ou non. On aura alors le même rendu aussi bien dans GIMP que n’importe où ailleurs, après exportation.</p> <h3 id="toc-Échantillonner-sur-tous-les-calques-dans-loutil-daction-gegl"> « Échantillonner sur tous les calques » dans l’outil d’action GEGL</h3> <p>Lorsque certains filtres ont une propriété de couleur, leur boîte de dialogue expose généralement un bouton permettant de choisir une couleur directement sur le canevas. Jusqu’à présent, on ne pouvait choisir que dans le calque actif (celui que vous éditiez).</p> <p>Tous les filtres implémentés en tant qu’opérations GEGL affichent désormais une case à cocher <em>Échantillonner sur tous les calques</em> dans la fenêtre ancrable des options de l’outil (juste en dessous de l’option <em>Moyenne du voisinage</em>). Cela permet de choisir des couleurs visibles lorsque cela est nécessaire.</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31302f30372f67696d702d322d31302d32322d72656c65617365642f73616d706c652d6d65726765642d6765676c2d746f6f6c2d6f7074696f6e732e6a7067/sample-merged-gegl-tool-options.jpg" alt="Échantillonner sur tous les calques dans les opérations GEGL" title="Source : https://www.gimp.org/news/2020/10/07/gimp-2-10-22-released/sample-merged-gegl-tool-options.jpg"><br> <em>La nouvelle option « Échantillonner sur tous les calques » permet de choisir les couleurs visibles à l’écran le cas échéant, par exemple ici avec l’opération « Coloriser ».</em></p> <h3 id="toc-greffon-spyrogimp">Greffon Spyrogimp</h3> <p>Spyrogimp, le greffon officiel de dessin de motifs « spirographiques », fonctionne maintenant aussi avec des images en niveaux de gris et ne remplit plus autant qu’avant l’historique d’annulation. </p> <h3 id="toc-conversion-en-couleurs-indexées-améliorée">Conversion en couleurs indexées améliorée</h3> <p>C’est une fonctionnalité arrivée avec GIMP 2.10.20, mais nous avions oublié de la mentionner dans les précédentes notes de version. Découvrons donc ces améliorations ici.</p> <p>La conversion en image indexée utilise un algorithme de coupure médiane pour obtenir une palette de couleurs adaptée à l’image. Un tel algorithme calcule chaque index à utiliser comme moyenne des couleurs dans une boite 3D dans un espace de couleurs, de telle façon que la valeur résultante s’éloigne des extrêmes.</p> <p>Cela rend quasi impossible l’obtention de blancs et noirs purs, même si l’image originale contient ces couleurs, par exemple des numérisations de documents imprimés ou des dessins techniques.</p> <p>On corrige maintenant la dérive en considérant que la couleur la plus blanche est du blanc et que la plus noire est du noir si la couleur calculée est suffisamment proche du blanc ou du noir et si l’image originale contient déjà du blanc ou du noir pur.</p> <p><img src="//img.linuxfr.org/img/68747470733a2f2f7777772e67696d702e6f72672f6e6577732f323032302f31302f30372f67696d702d322d31302d32322d72656c65617365642f67696d702d70616c657474652d636f6e76657273696f6e2e6a7067/gimp-palette-conversion.jpg" alt="Comparaison de la création d’une palette" title="Source : https://www.gimp.org/news/2020/10/07/gimp-2-10-22-released/gimp-palette-conversion.jpg"></p> <p><em>L’image de gauche est l’image originale en RVB, convertie en image indexée de 6 couleurs avec GIMP 2.10.18 (centre) et GIMP 2.10.20, ou plus récent (droite)</em></p> <p>Notez que la palette optimale à deux couleurs est un cas particulier qui ne bénéficie pas de cet algorithme modifié puisque GIMP fournit déjà une option dédiée « Utiliser une palette noir et blanc (1 bit) » qui fait la même chose.</p> <h2 id="toc-réglages-par-défaut">Réglages par défaut</h2> <h3 id="toc-loption-échantillonnage-sur-tous-les-calques-est-dorénavant-activée-par-défaut-pour-le-sélecteur-par-couleur">L’option « échantillonnage sur tous les calques » est dorénavant activée par défaut pour le sélecteur par couleur</h3> <p>Suite à un petit sondage sur les réseaux sociaux (qui a obtenu 174 réponses), l’option « <em>échantillonnage sur tous les calques</em> » est maintenant activée par défaut. L’idée derrière ce changement est de simplifier l’expérience des débutants en leur permettant de sélectionner les couleurs qu’ils voient plutôt que celles du calque actif.</p> <p>Cette décision a évidemment peu d’impact pour les utilisateurs avancés qui continueront à activer et à désactiver cette option, car les deux modes sont utiles. Elle ne modifie rien sous le capot.</p> <h3 id="toc-mattinglevin-devient-le-moteur-dextraction-de-premier-plan-pardéfaut">« Matting Levin » devient le moteur d’extraction de premier plan par défaut</h3> <p>Pour ses capacités à mieux <a href="https://docs.gimp.org/2.10/fr/gimp-tool-foreground-select.html">isoler un sujet en premier plan</a> dans la plupart des situations, cet algorithme est maintenant celui proposé par défaut.</p> <h2 id="toc-débogage">Débogage</h2> <p>Le tableau de bord a maintenant une nouvelle option pour enregistrer des journaux de performance progressifs, qui contiennent toute l’information sur tous les échantillons enregistrés. Cela permet d’enregistrer des journaux complets même en cas d’interruption, comme lorsque GIMP plante ou gèle en plein milieu.</p> <p>Les journaux progressifs sont désactivés par défaut, car ils augmentent le coût des échantillonnages. Ils peuvent être activés dans le dialogue des journaux ou avec la variable d’environnement <code>$GIMP_PERFORMANCE_LOG_PROGRESSIVE</code>.</p> <p>De plus, les informations de débogage verbeuses (avec <code>gimp-2.10 -v</code> en ligne de commande, par exemple) affichent maintenant les informations Flatpak si pertinent ; comme la signature de compilation, la version, les extensions Flatpak installées, les permissions, etc. Cela pourra éventuellement aider à corriger certains problèmes.</p> <h3 id="toc-opencl-est-maintenant-considéré-comme-expérimental">OpenCL est maintenant considéré comme expérimental</h3> <p>Depuis GIMP 2.10.0, plusieurs opérations GEGL ont des implémentations OpenCL, ce qui permet normalement un traitement plus rapide. Malheureusement, la situation n’est pas si idyllique, car nous n’avons pas assez de contributions pour améliorer notre code et les pilotes sont parfois problématiques eux‑mêmes.</p> <p>Dans divers cas, activer OpenCL dans GIMP pouvait le rendre instable. Nous avons décidé que ce n’était plus acceptable et avons déplacé la fonctionnalité dans l’onglet « <em>Aire de jeu</em> » des préférences. Techniquement, cela signifie que la fonctionnalité est cachée à moins de lancer GIMP avec l’option <code>--show-playground</code> (ou d’utiliser une version de développement) : de cette façon, les utilisateurs sont clairement informés que c’est une fonctionnalité instable. Nous espérons pouvoir déplacer à nouveau cette fonctionnalité vers les préférences normales à l’avenir.</p> <h3 id="toc-playground-invisible-pardéfaut">Playground invisible par défaut</h3> <p>La page <code>Aire de jeu</code> dans les préférences n’est plus visible à moins que vous n’utilisiez une version de développement de GIMP ou si vous démarrez une version stable en ligne de commandes avec l’option <code>--show-playground</code>.</p> <p>Malgré tout, si vous avez activé n’importe quelle fonctionnalité instable de l’<code>Aire de jeu</code>, alors la page restera visible (ce qui permet de retrouver le réglage à nouveau si vous avez besoin de le désactiver).</p> <h2 id="toc-lécosystème-gimp">L’écosystème GIMP</h2> <h3 id="toc-les-greffons-et-manuels-dans-le-flatpak-gimp">Les greffons et manuels dans le Flatpak GIMP</h3> <p>Notre Flatpak officiel a maintenant un point d’extension pour les greffons. Cela signifie que n’importe qui peut désormais empaqueter des greffons comme « Extension Flatpak » et contribuer au dépôt flathub. Grâce à Hubert Figuière, sept greffons GIMP très populaires sont d’ores et déjà disponibles pour les utilisateurs Flatpak : BIMP, FocusBlur, Fourier, G’MIC, GimpLensfun, LiquidRescale et Resynthesizer.</p> <p>La ligne de commande pour tous les installer d’un coup est (en supposant que GIMP est déjà installé avec Flatpak et que le dépôt flathub est bien configuré) :</p> <pre><code>flatpak install org.gimp.GIMP.Plugin.Resynthesizer org.gimp.GIMP.Plugin.LiquidRescale org.gimp.GIMP.Plugin.Lensfun org.gimp.GIMP.Plugin.GMic org.gimp.GIMP.Plugin.Fourier org.gimp.GIMP.Plugin.FocusBlur org.gimp.GIMP.Plugin.BIMP </code></pre> <p>Note : flathub ne propose pas encore de méthode pour découvrir les extensions d’un logiciel directement depuis son catalogue web. La ligne de commande suivante peut être utilisée pour rechercher les greffons GIMP :</p> <pre><code>flatpak search org.gimp.GIMP.Plugin </code></pre> <p>De plus, le manuel utilisateur de GIMP sera maintenant installé par défaut en utilisant notre Flatpak, mais pas dans toutes les langues ; pour l’installer dans toutes les langues disponibles, il faut exécuter :</p> <pre><code>flatpak install --reinstall flathub org.gimp.GIMP.Manual </code></pre> <p>Les statistiques de flathub montrent près de 230 000 utilisateurs de notre paquet Flatpak (dont environ 100 000 qui mettent à jour GIMP dans les deux semaines après une publication), ce qui est plutôt pas mal pour ce qui n’est qu’un des nombreux formats de paquets pour GNU/Linux.</p> <h3 id="toc-gegl-et-babl">GEGL et babl</h3> <p>Comme chaque nouvelle version de GIMP, elle s’accompagne de sorties de <a href="http://gegl.org/babl/">babl</a> (0.1.78, 0.1.80 et 0.1.82) et de <a href="http://gegl.org/">GEGL</a> (0.4.24 et 0.4.26), avec diverses corrections de bogues.</p> <p>Il faut cependant noter que même si la version minimale requise par GIMP est babl 0.1.78, nous conseillons plutôt d’utiliser la dernière version si possible, c’est-à-dire babl 0.1.82. En effet, cette dernière gère des TRC plus complexes dans ICCv4, ce qui signifie que sans ces changements, le rendu de l’image après traitement de votre profil colorimétrique risque d’être incorrect s’il utilise ces paramètres.</p> <h3 id="toc-intégration-continue">Intégration continue</h3> <p>Le processus d’intégration continue de GIMP comprend maintenant une étape de vérification et produit donc sans la moindre intervention manuelle une archive bien testée.</p> <p>La compilation en continu de la version en développement (future GIMP 3) pour Windows <a href="//linuxfr.org/news/gimp-2-10-14-et-2-10-18-sans-limites#toc-compilation-pour-windows-en-int%C3%A9gration-continue">existait déjà depuis GIMP 2.10.18</a>, mais l’archive à télécharger était énorme et contenait nombre de fichiers qui n’avaient qu’un intérêt transitoire durant la compilation ; il fallait aussi qu’un script de préparation soit lancé au premier lancement. Nous avons maintenant mis en place un processus d’intégration continue amélioré qui produit une archive plus légère, sans script de lancement et (on l’espère) utilisable. Si ce n’est pas le cas, faites un rapport — ou mieux, envoyez-nous des correctifs!</p> <p>L’idée vient du projet <a href="https://www.siril.org/">Siril</a> (logiciel libre de traitement des images astronomiques), après que nous les avons aidés à mettre en place une intégration continue avec compilation croisée similaire à la nôtre, à l’aide de <a href="https://pypi.org/project/crossroad/">crossroad</a>. C’est un bel exemple d’échange entre des projets libres, dans lequel un bout de code va d’un projet à un autre, où il est amélioré, puis revient vers sa source, en mieux ! 🥳</p> <p>Cela sera très utile quand on demandera aux gens de tester la version de développement, car beaucoup de bogues sont corrigés dessus (souvent simplement parce que cette version se base sur GTK3 qui corrige certains problèmes, alors que GTK2 n’est plus maintenue et stagne). Les liens suivants renverront toujours la dernière compilation réussie de la version de développement :</p> <p>» <a href="https://gitlab.gnome.org/GNOME/gimp/-/jobs/artifacts/master/download?job=win64-nightly">Dernier <em>build</em> de développement de GIMP pour Windows 64-bit</a> «<br> » <a href="https://gitlab.gnome.org/GNOME/gimp/-/jobs/artifacts/master/download?job=win32-nightly">Dernier <em>build</em> de développement de GIMP pour Windows 32-bit</a> «</p> <p><em>NOTE 1 : les binaires de test servent seulement à tester, comme l’indiquent bien leurs noms. Ils n’ont pas été vérifiés manuellement, s’appuient sur du code en cours de développement et notre système de compilation automatique est lui-même encore un peu jeune, donc il peut y avoir des bogues qui ne se voient que là. Ne les utilisez pas en production !</em></p> <p><em>NOTE 2 : il y a toujours plusieurs problèmes connus comme l’introspection GObject manquante, qui fait que les greffons en Python 3, JavaScript, Lua ou Vala ne fonctionneront pas (encore) dans les builds du CI Windows.</em></p> <p><em>NOTE 3 : ces binaires ne sont pas fournis avec un installeur ou une bonne intégration au bureau (par exemple pas de raccourci dans les menus) : décompressez l’archive et double‐cliquez simplement sur les fichiers <code>gimp.cmd</code> ou <code>gimp-2.99.exe</code>.</em></p> <p>Ces changements font tous partie d’un travail en cours plus global pour améliorer le test du code durant le développement et automatiser à terme la procédure de publication pour qu’elle soit plus rapide, plus facile et plus sûre.</p> <h2 id="toc-disponibilité-de-binaires-macos">Disponibilité de binaires macOS</h2> <p>Nous n’avons malheureusement pas de bonnes nouvelles pour les utilisateurs macOS pour le moment : le contributeur qui avait mis en place des compilations d’intégration continue pour des versions macOS et qui travaillait sur divers bogues spécifiques à macOS dans GTK est toujours indisponible. Jusqu’à maintenant, aucun autre contributeur ne s’est avancé pour combler ce vide. Si vous voulez nous aider, merci de nous contacter sur le <a href="https://www.gimp.org/irc.html">canal IRC</a> des développeurs <code>#gimp</code> ; ou sur la <a href="https://www.gimp.org/mail_lists.html">liste de discussion</a> <em>gimp-developer@</em>.</p> <h2 id="toc-contributeurs">Contributeurs</h2> <p>Les contributeurs pour cette version sont : Daniel Novomesky, David Russo, Elad Shahar, Ell, Jacob Boerema, Jehan, Liam Quin, Michael Natterer, Peter Oliver, <em>luz.paz</em>, Sabri Ünal, Sebastian Rasmussen, Simon McVittie, <em>space pudim</em> et Øyvind Kolås.</p> <p>Traducteurs : Alan Mortensen, Alexandre Prokoudine, Anders Jonsson, Andika Triwidada, Asier Sarasua Garmendia, Baurzhan Muftakhidinov, Boyuan Yang, Christian Kirbach, Daniel Mustieles, Jordi Mas, Julien Hardelin, Marco Ciampa, Milo Ivir, Piotr Drąg, Rodrigo Lledó, Sabri Ünal, <em>sicklylife</em>, Stephan Woidowski, Tim Sabsch et Yuri Chornoivan.</p> <p>Nous remercions aussi <em>lillolollo</em>, <em>nmat</em> et Michael Schumacher pour le tri dans les rapports de bogue et Julien Hardelin pour la mise à jour du manuel de l’utilisateur.</p> <h2 id="toc-et-ensuite">Et ensuite ?</h2> <p>Pendant la même période, un travail spécifique sur la version de développement (future GIMP 3.0) a continué, notamment :</p> <ul> <li>le travail continue sur la <a href="https://www.patreon.com/posts/report-on-for-in-37266151">sélection multiple de calques</a> ;</li> <li>Plusieurs améliorations de l’API (interface de programmation pour les greffons) : <ul> <li>les fonctions <code>PDB</code> peuvent être appelées plus facilement d’un greffon à l’autre dans les liaisons de largage,</li> <li>la rotation d’image à l’importation est maintenant gérée par GIMP lui‑même (similairement à l’importation des profils de couleur) et vient avec une nouvelle configuration de « Politique de Rotation » dans les <code>Préférences</code>,</li> <li>la bibliothèque <code>GimpUI</code> générée par GObject Introspection retire le préfixe <code>gimp_ui</code> des fonctions (par exemple <code>gimp_ui_init()</code> devient <code>GimpUi.init()</code>, introspecté, plutôt que <code>GimpUi.ui_init()</code>),</li> <li>amélioration de la liaison (<em>binding</em>) Vala,</li> <li>nouveau concept de « synchronisation d’arguments » dans la classe <code>GimpProcedure</code> afin que les arguments de procédures se synchronisent avec un parasite d’image du même nom ;</li> </ul> </li> <li>enfin du nouveau dans la correction de bogues pour Windows, par exemple le chargement de thèmes CSS est enfin réparé ;</li> <li>le greffon <code>Twain</code> pour Windows a été porté à l’API v3 ; il s’agissait du dernier greffon C qui n’était pas encore porté, ce qui signifie maintenant que tous les greffons officiels sont dans un état au minimum utilisable (même si pas forcément dans la dernière version de l’API qui évolue régulièrement), ce qui est une étape importante ;</li> <li>quelques améliorations dans la gestion des petits écrans (ce qui est ironiquement devenu davantage un problème avec l’élargissement HiDPI activé sur des écrans de résolution intermédiaire) ;</li> <li>l’ancienne API Python 2 spécifique (<code>pygimp</code>) a maintenant été complètement retirée du dépôt de source, et tous les greffons Python sont maintenant portés à Python 3 et la nouvelle API de GIMP 3 (j’ai démarré ce travail, il y a plus d’un an, et il s’achève enfin, avec beaucoup d’aide d’Elad Shahar), la nouvelle interface pour les greffons Python est ainsi générique et suit la même API que les autres langages pris en charge (C/C++, Python 3, Lua, Vala et JavaScript pour le moment) — c’est également une étape assez importante vers GIMP 3 ;</li> <li>la <a href="https://www.patreon.com/posts/gimp-dev-report-39631718">chasse aux bogues liés à Wayland</a> continue (mais ce n’est pas fini !) ;</li> <li>le style graphique du <em>widget</em> <code>GimpSpinScale</code> est amélioré et il n’est plus possible de configurer GIMP pour retrouver l’ancien style non compact (<a href="//linuxfr.org/news/gimp-2-10-14-et-2-10-18-sans-limites#toc-curseurs-compacts">contrairement à GIMP 2.10.x</a>) ;</li> <li>l’utilisabilité du dialogue de « Périphériques d’entrée » a été améliorée.</li> </ul> <p>L’interface utilisateur est maintenant disponible dans deux langues de plus dans la branche de développement (les premières nouvelles langues depuis <a href="//linuxfr.org/news/gimp-2-10-6-rien-ne-nous-arrete#toc-nouvelle-localisation-marathi">l’ajout du marathi dans GIMP 2.10.6</a>) : le kabyle et le sorani. Notez néanmoins que ces deux traductions supplémentaires ne sont pas encore présentes dans la série 2.10. Avec celles‑ci, GIMP sera disponible dans quatre‑vingt‐trois langues. C’est une bonne opportunité de rappeler que les traducteurs font un travail formidable.</p> <p>Avec ce nouveau format de fichiers (AVIF), diverses améliorations majeures des formats de fichiers et de nouveaux langages pour les greffons, notre petit Wilber se montre très studieux ces derniers temps, et apprend beaucoup de choses !</p> <p>Pour finir, merci de ne pas oublier que vous pouvez <a href="https://www.gimp.org/donating/">donner au projet ou financer personnellement plusieurs développeurs GIMP</a> 🙏 : c’est une façon de contribuer et accélérer le développement de GIMP.<br> Parmi les développeurs de GIMP, vous trouverez notamment le <a href="https://www.patreon.com/zemarmot">projet ZeMarmot (patreon)</a> (aussi présent sur <a href="https://liberapay.com/ZeMarmot/">Liberapay</a> et <a href="https://fr.tipeee.com/zemarmot">Tipeee</a>) que j’ai cofondé et qui est de nos jours l’un des <a href="https://www.openhub.net/p/gimp/contributors/summary">contributeurs majeurs de GIMP</a> (même le principal en 2020). Chaque aide compte pour <a href="https://www.patreon.com/posts/what-remains-to-40087754">nous permettre de continuer à développer GIMP</a> !</p> </div><div><a href="https://linuxfr.org/news/gimp-2-10-22-consolidation-des-formats.epub">Télécharger ce contenu au format EPUB</a></div> <p> <strong>Commentaires :</strong> <a href="//linuxfr.org/nodes/121780/comments.atom">voir le flux Atom</a> <a href="https://linuxfr.org/news/gimp-2-10-22-consolidation-des-formats#comments">ouvrir dans le navigateur</a> </p>