Crédits : Bru-nO (Pixabay Content License)
Grâce au financement de la Métropole de Bordeaux, j’ai eu la chance de travailler sur le support du CMJN (Cyan Magenta Jaune Noir, CMYK en anglais) dans QGIS. L’objectif de la métropole est de faire tomber la dernière barrière empêchant leur migration complète depuis ArcGIS vers QGIS.
Les développements sont maintenant terminés et seront disponibles dans la version 3.40 de QGIS, prévue pour être publiée en octobre 2024, avant de devenir la prochaine LTR en février 2025. Il est cependant à noter que le support du CMJN ne sera complet que dans les versions de QGIS construites avec Qt 6 (version encore non officielle) pour des raisons expliquées dans l’article. Sur Windows, cette version n’est actuellement installable qu’en utilisant OSGeo4W (version qgis-qt6-dev).
EDIT: En réalité, la version de QGIS construite à partir de Qt 6.8 qui embarque les modifications nécessaires pour l’export PDF CMJN n’est toujours pas disponible. Plus d’information ici.
C’est quoi le CMJN ?
Vous connaissez certainement le RVB qui permet de coder une couleur sur écran en choisissant la quanté de rouge, vert et bleu de cette couleur. Il est aussi possible que vous utilisiez le TSL ou TSV.
RVB – Crédits : Daniel Roberts (Pixabay Content License)
Ces 3 référentiels de couleurs permettent de coder une couleur pour un écran, le CMJN cible quant à lui les imprimantes en permettant de saisir la quantité exacte d’encre qui sera libérée lors de l’impression (d’où les 4 composantes CMJN, une par cartouche d’encre).
CMJN ( ici de gauche à droite, NCMJ ) – Crédits : Magnascan (Pixabay Content License)
Les caractéristiques du CMJN diffèrent fortement du RVB, on parle notamment de mode colorimétrique soustractif, car l’encre absorbe la lumière au contraire du RVB qui est dit additif, plus vous avez de rouge, vert, bleu plus vous vous rapprochez de la pleine lumière, le blanc.
La nature intrinsèquement différente de ces 2 espaces colorimétriques font qu’il est fortement déconseillé de convertir l’un vers l’autre. Le mieux est de choisir une couleur dans un espace (CMJN pour l’impression, RGB pour le rendu sur écran) et de s’y tenir.
Pire, l’impression d’une même couleur est différente selon l’imprimante, l’encre, le papier… Le choix d’une couleur CMJN se fait dans un espace de couleur, représenté par un fichier de profil ICC, fourni par votre imprimeur. C’est un peu l’équivalent d’un nuancier utilisé lors d’un choix de peinture.
Vous pouvez maintenant vous écharper sur la VRAIE bonne couleur d’une ligne de route – Crédits : Yanis Ladjouzi (Pixabay Content License)
Implémentation dans QGIS… et Qt
Suite aux développements, il est maintenant possible dans QGIS de :
- Saisir des couleurs au format CMJN, et en précision flottante ;
- Définir son mode de couleur préférentiel (RVB ou CMJN) et son espace de couleur ;
- Générer un fichier au format PDF/X-4 (prêt pour l’impression) embarquant un espace de couleur et utilisant des couleurs CMJN ;
- Permettre au moteur d’expression de manipuler des couleurs CMJN sans les convertir en RVB ;
- Gérer les rampes de couleurs CMJN ;
- Plein d’autres petites améliorations et corrections autour de la thématique des couleurs.
Selection des couleurs dans QGIS en CMJN
La belle histoire de l’Open source
J’ai pris un grand plaisir à participer à ce développement car il est le fruit de la collaboration de nombreux acteurs du logiciel libre.
Lors d’une première phase d’étude concernant le support du CMJN dans QGIS, on identifie rapidement que Qt, le cadriciel (framework) utilisé par QGIS pour le rendu des cartes, présente des limitations. Il convertit toutes les couleurs en RVB lors du rendu des cartes au format PDF et son support des espaces de couleurs CMJN est incomplet.
Il est donc nécessaire de le faire évoluer. Nous nous adressons donc à notre partenaire privilégié lorsqu’il s’agit de Qt, KDAB, et plus précisément Giuseppe D’Angelo qui réalise alors les développements nécessaires.
S’agissant de nouvelles fonctionnalités, ces dernières sont disponibles uniquement dans Qt 6 (Qt 5 est en fin de vie). C’est pour cette raison que le support du CMJN est incomplet dans les versions officielles de QGIS reposant encore sur Qt 5.
QGIS.org, l’association qui chapeaute le projet QGIS, a décidé de financer les développements sur Qt, charge ensuite à Oslandia de piloter ces développements puis de réaliser l’intégration dans QGIS. Cette intégration ainsi que les évolutions fonctionnelles afférentes été financé par la métropole de Bordeaux.
Mes développements ont ensuite été relus par d’autres contributeurs QGIS. (Si vous voulez en savoir plus sur le processus de contribution QGIS, vous pouvez lire un précédent billet de blog sur la qualité logicielle dans QGIS)
Enfin, je tenais à remercier spécialement Jehan, développeur sur le projet GIMP. Sa disponibilité et son exhaustivité dans nos correspondances électroniques m’ont grandement aidé à comprendre les enjeux à la fois techniques et fonctionnels du CMJN, et ont très certainement contribué à la qualité du résultat obtenu.
La suite
QGIS 3.40 sera donc capable de générer un fichier PDF/X-4 utilisant des couleurs CMJN. Qt, de son côté, améliore le support du CMJN, l’écriture PDF, et la gestion des espaces de couleurs.
Encore merci à la métropole de Bordeaux et QGIS.org pour avoir financé ces développements, et toutes les personnes impliqués dans la réalisation de ceux ci.
Nous serions ravis d’avoir des retours d’utilisateurs sur vos cas d’utilisation liés à la gestion des couleurs dans QGIS. N’hésitez pas à nous écrire ou à commenter nos posts pour nous dire comment vous utilisez ces fonctionnalités.
Ces fondations dans la gestion des espaces colorimétriques dans QGIS ouvrent la porte à de futurs perfectionnements. Si le sujet vous intéresse et que vous souhaitez contribuer, n’hésitez pas à nous contacter à infos+qgis@oslandia.com et consulter notre offre de support à QGIS.