Outils pour utilisateurs

Outils du site


issue182:inkscape

Right on schedule, Inkscape 1.2 was released last month with a lot of new features, and updates to the existing UI. I will be covering everything in detail in this column, but not just yet. In the meantime, if you want a good overview of the headline features, I strongly recommend taking two minutes out of your day to watch the very professionally produced official release video: https://www.youtube.com/watch?v=1U4hVbvRr_g For now, these articles are still working through the many new Live Path Effects (LPEs) that were added with Inkscape 1.0 and 1.1. The topic for this instalment is a pair of new LPEs – “Power Clip” and “Power Mask” – which I first mentioned back in part 101. That article detailed the use of the new “Inverse Clip” and “Inverse Mask” menu entries, with little more than a scant reference to the fact that they’re actually implemented as LPEs. Now it’s time to dig into the effects that back these capabilities in a little more detail.

Comme prévu, Inkscape 1.2 est sorti le mois dernier avec de nombreuses nouvelles fonctionnalités et des mises à jour de l'interface utilisateur existante. Je vais tout couvrir en détail dans cette rubrique, mais pas tout de suite. En attendant, si vous voulez avoir un bon aperçu des principales fonctionnalités, je vous recommande vivement de prendre deux minutes de votre temps pour regarder la vidéo officielle de la sortie, produite de manière très professionnelle : https://www.youtube.com/watch?v=1U4hVbvRr_g.

Pour l'instant, mes articles portent sur les nombreux nouveaux Effets de Chemins Interactifs (ECI - en anglais, Live Path Effects, LPE) qui ont été ajoutés à Inkscape 1.0 et 1.1. Le sujet de cet article est une paire de nouveaux LPE - « Découpe avancée » et « Masque avancé » - dont j'ai parlé pour la première fois dans la partie 101. Cet article détaillait l'utilisation des nouvelles entrées de menu « Découpe Inverse » et « Masque Inverse », sans faire plus qu'une brève référence au fait qu'elles sont réellement implémentées en tant que LPE. Il est maintenant temps de se pencher de manière un peu plus détaillée sur les effets qui soutiennent ces capacités.

Power Clip I won’t sugar coat this: I think the name of this LPE is making a very bold claim that is far from matched by reality. As far as I can tell, this effect usefully does one and only one thing, and doesn’t really deserve the “Power” prefix at all. The only practical use for this LPE is to create inverse clipping paths. Adding this effect to a path works a little differently to almost every other LPE. You can’t simply select a path and add the Power Clip effect from the usual dialog. If you try, you’ll just find that the option is disabled (as is Power Mask, for similar reasons). A clipping path requires one other element to act on – the thing you’re trying to clip. That single element could, of course, be a group consisting of several other items, which allows complex designs to be easily clipped. But the clipping path itself is applied to only one element or group.

Découpe avancée

Je ne vais pas mettre des gants blancs pour le dire : je pense que le nom de ce LPE est une affirmation très audacieuse qui est loin de correspondre à la réalité. Pour autant que je sache, cet effet ne fait qu'une seule et unique chose, et ne mérite pas vraiment l'adjectif « avancée ». La seule utilisation pratique de ce LPE est de créer des chemins de découpage inversés.

L'ajout de cet effet à un chemin fonctionne un peu différemment de presque tous les autres LPE. Vous ne pouvez pas simplement sélectionner un chemin et ajouter l'effet Découpe avancée à partir de la boîte de dialogue habituelle. Si vous essayez, vous constaterez simplement que l'option est désactivée (tout comme le Masque avancé, pour des raisons similaires).

Un chemin de découpe nécessite un autre élément sur lequel agir : l'élément que vous essayez de découper. Cet élément unique peut, bien entendu, être un groupe composé de plusieurs autres éléments, ce qui permet de découper facilement des conceptions complexes. Mais le chemin d'écrêtage lui-même n'est appliqué qu'à un seul élément ou groupe.

With this in mind, you might think that this LPE will become available if you have two items selected. In practice, however, the Path Effects dialog itself will chastise you with an “Only one item can be selected” message, and the “+” button will be disabled to prevent you even opening the Live Path Effects Selector dialog. How, then, do we apply this LPE in the first place? There are actually two methods: • The first is to apply it directly using the Object > Clip > Set Inverse (LPE) menu entry that I discussed in part 101. • The other is to apply a normal clip, either via the context menu or using the Object > Clip > Set menu entry, then use the Path Effects dialog to add the LPE as usual. Yes, if you have an already clipped object selected, only then will you be able to add this LPE in the normal manner.

En gardant cela à l'esprit, vous pourriez penser que ce LPE deviendra disponible si vous avez sélectionné deux éléments. En pratique, cependant, la boîte de dialogue des Effets de chemin elle-même vous réprimande avec un message « Un seul élément peut être sélectionné », et le bouton « + » est désactivé pour vous empêcher d'ouvrir la boîte de dialogue du sélecteur d'effets de trajectoire en direct. Comment, alors, appliquer ce LPE ?

Il existe en fait deux méthodes : ••La première consiste à l'appliquer directement à l'aide de l'entrée de menu Objet > Découpe > Inverser (ECI) dont j'ai parlé dans la partie 101. ••L'autre méthode consiste à appliquer une découpe normale, soit via le menu contextuel, soit en utilisant l'entrée de menu Objet > Découpe > Définir, puis à utiliser la boîte de dialogue des Effets de Chemin Dynamiques pour ajouter le LPE comme d'habitude.

Oui, si vous avez sélectionné un objet déjà découpé, ce n'est que dans ce cas que vous pourrez ajouter ce LPE de la manière habituelle.

Whichever approach you take, this LPE really, really wants to create an inverted clip. If you add it directly via the menu entry, then that’s what will happen, as you would expect. Adding it via the dialog to an already clipped object, however, will immediately invert the clip that you’ve already applied – which might be a little more surprising if you’re not expecting it. As a reminder, a normal clip preserves everything inside the path, and hides the content outside. An inverse clip, therefore, hides everything inside the path but preserves anything outside, per the image below. If you really want a normal clip, then you can uncheck the “Inverse clip” option in the LPE’s parameters – though doing so raises the obvious question of why you want to use the LPE at all in that case. Perhaps the “power” in this LPE actually comes from the other two parameters? Well, the “Hide clip” option simply modifies the clipping path to remove the nodes that actually do the clipping – again, raising a question about why you wouldn’t just remove the clip entirely. As for “Flatten clip”: this is another entry in my box of LPE mystery parameters that appear to do something, but it’s not entirely clear quite what that something is. My own experiments with various combinations of objects and groups, primitives and paths, have failed to present me with any situation in which it does something useful. As usual, if you have any idea of how it’s meant to be used, please do get in touch.

Quelle que soit l'approche adoptée, ce LPE veut vraiment, vraiment, créer un découpage inversé. Si vous l'ajoutez directement via l'entrée de menu, c'est ce qui se produira, comme vous pouvez vous y attendre. En revanche, si vous l'ajoutez à un objet déjà découpé via la boîte de dialogue, la découpe que vous avez déjà appliquée sera immédiatement inversée, ce qui peut être un peu plus surprenant si vous ne vous y attendez pas.

Pour rappel, une découpe normale préserve tout ce qui se trouve à l'intérieur du chemin, et masque le contenu extérieur. Un découpage inverse, par conséquent, masque tout ce qui se trouve à l'intérieur du chemin mais préserve tout ce qui se trouve à l'extérieur, comme le montre l'image ci-dessous.

Si vous voulez vraiment une découpe normale, vous pouvez décocher l'option « Découpe inverse » dans les paramètres du LPE, bien que cela soulève la question évidente de savoir pourquoi vous voulez utiliser le LPE dans ce cas.

Peut-être que l'« avance » de ce LPE provient en fait des deux autres paramètres ? L'option « Cacher la découpe » modifie simplement le chemin d'écrêtage pour supprimer les nœuds qui effectuent la découpe, ce qui soulève à nouveau la question de savoir pourquoi vous ne supprimez pas entièrement la découpe. Quant à « Aplatir la découpe », il s'agit d'une autre entrée dans ma boîte de paramètres mystérieux de LPE qui semblent faire quelque chose, mais dont on ne sait pas exactement ce que c'est. Mes propres expériences avec diverses combinaisons d'objets et de groupes, de primitives et de chemins, n'ont pas réussi à me présenter une situation dans laquelle elle fait quelque chose d'utile. Comme d'habitude, si vous avez une idée de la façon dont elle est censée être utilisée, n'hésitez pas à nous contacter.

One final important note about this LPE is how to go about removing it. If you only want to temporarily stop it being applied, then the usual approach with an LPE is to toggle the visibility icon (the “eye” image) in the Path Effects dialog. This may not, however, work as you expect. It will remove the inverting effect of the LPE, but still leave your object with the non-inverted clip applied. If you really want to see the object with no clip at all, then you’re back to using the “Hide” option in the LPE’s parameters. This feels a little awkward to me, as it requires users to understand too much about the implementation of clipping masks in SVG to fully appreciate why the normal visibility toggle doesn’t work the way they might expect. Permanently removing this effect is even worse. Should you be foolish enough to delete the effect from the Path Effects dialog, as you might usually do, then you’re likely to find that your clipped objects disappear as well – almost certainly not what you wanted! Instead you have to release the clip using the Object > Clip > Release menu entry, or the context menu alternative. Even that comes with a sting in the tail: your original clipping path will also be deleted, so if you wanted to retain both that path and the object being clipped, you’re out of luck.

Une dernière remarque importante à propos de ce LPE concerne la manière de le supprimer. Si vous voulez seulement empêcher temporairement son application, l'approche habituelle avec un LPE est de basculer l'icône de visibilité (l'image de l'« œil ») dans la boîte de dialogue des effets de chemin. Cependant, cela ne fonctionnera pas forcément comme vous le souhaitez. En effet, l'effet d'inversion du LPE est supprimé, mais l'objet reste marqué par la découpe non inversée. Si vous voulez vraiment voir l'objet sans aucune découpe, vous devez utiliser l'option « Cacher » dans les paramètres du LPE. Cela me semble un peu maladroit, car il faut que les utilisateurs comprennent trop bien l'implémentation des masques de découpage en SVG pour comprendre pourquoi la bascule de visibilité normale ne fonctionne pas comme ils le souhaiteraient.

Supprimer définitivement cet effet est encore pire. Si vous êtes assez fou pour supprimer l'effet dans la boîte de dialogue Effets de chemin, comme vous pourriez le faire habituellement, vous constaterez probablement que vos objets coupés disparaissent également - ce qui n'est certainement pas ce que vous vouliez ! Au lieu de cela, vous devez libérer la découpe à l'aide de l'entrée de menu Objet > Découpe > Retirer, ou son alternative du menu contextuel. Mais cette solution n'est pas sans inconvénient : le chemin de découpage d'origine sera également supprimé, ce qui signifie que si vous vouliez conserver à la fois ce chemin et l'objet découpé, vous n'aurez pas de chance.

With that exhaustive examination of this “power” LPE, I’ve come to the conclusion that it serves only one useful purpose: to simplify the task of punching a hole in another object using a clipping path. To be fair, I think this is an exceptionally useful ability. I’m just not sure it warrants the “power” prefix, rather than simply being called “Inverse clip”. As useful as it is, do be aware of the problems and limitations that come with it. If you’ve got enough experience with Inkscape to be able to make your own inverse clipping paths, as I described way back in part 13, perhaps sticking with the old-fashioned approach is still the safer option.

Après l'examen exhaustif de ce LPE « avancé », j'en suis arrivé à la conclusion qu'il ne sert qu'à une seule chose : simplifier la tâche consistant à percer un trou dans un autre objet à l'aide d'un chemin de découpage. Pour être honnête, je pense que c'est une capacité exceptionnellement utile. Je ne suis simplement pas sûr qu'elle justifie l'adjectif « avancé », plutôt que d'être simplement appelée « Découpe inverse ». Aussi utile qu'elle soit, il faut être conscient des problèmes et des limites qui l'accompagnent. Si vous avez suffisamment d'expérience dans Inkscape pour être capable de créer vos propres chemins de découpage inversés, comme je l'ai décrit dans la partie 13, peut-être que s'en tenir à l'ancienne approche reste l'option la plus sûre.

Power Mask Masks are often thought of as a more “analogue” version of clipping. Whereas clips provide hard edges and a binary visible/hidden state for each part of the clipped object, masks allow for gradients and blurs, with every part of the masked object having its opacity determined over a continuum according to the colors used in the mask. But when it comes to the Power Mask LPE, the behaviour and usage compared with the Power Clip effect is quite different in many ways. I prefer to keep my masks in shades of gray to provide clear control over their effects. A typical mask would use white for those areas that are to remain 100% opaque, black for those that are to become completely transparent, and intermediate shades for levels of opacity in-between. Any transparent areas, including those outside the mask shape, are also rendered as transparent once the mask is applied. With that refresher done, here’s the shape and mask we’ll be experimenting with today.

Masque avancé

Les masques sont souvent considérés comme une version plus « réaliste » du découpage. Alors que les clips fournissent des bords durs et un état binaire visible/caché pour chaque partie de l'objet découpé, les masques permettent des gradients et des flous, avec chaque partie de l'objet masqué ayant son opacité déterminée sur un continuum selon les couleurs utilisées dans le masque. Mais lorsqu'il s'agit du LPE Masque Avancé, ses comportement et utilisation par rapport à l'effet Découpe avancée sont très différents à bien des égards.

Je préfère garder mes masques en nuances de gris pour permettre un contrôle clair de leurs effets. Un masque typique utilise le blanc pour les zones qui doivent rester 100% opaques, le noir pour celles qui doivent devenir complètement transparentes, et des nuances intermédiaires pour les niveaux d'opacité intermédiaires. Toutes les zones transparentes, y compris celles situées en dehors de la forme du masque, sont également rendues transparentes une fois le masque appliqué. Après cette mise au point, voici la forme et le masque avec lesquels nous allons faire des expériences aujourd'hui.

When applied as a normal mask, the white center to the design should ensure that the middle of the star remains solid, while the gradient out to the black edge will fade out the points of the star long before we reach their ends. Selecting both the star and the mask, then using the “Set Mask” context menu entry (or Object > Mask > Set) does, indeed, give the result we would expect (shown against a chequerboard background so you can see which parts are translucent). What would you expect the result to be if, instead, we use Object > Mask > Set Inverse (LPE)? Based on the behaviour of the Power Clip effect, you might imagine that the middle will be punched out of the star, leaving the points in place but fading towards a large central hole. That’s certainly what I expected the first time I used this effect, but the actual outcome is somewhat different. Let’s take a closer look at the LPE’s parameters to work out exactly what’s happening here.

Lorsqu'il est appliqué comme un masque normal, le centre blanc du dessin devrait garantir que le milieu de l'étoile reste solide, tandis que le dégradé vers le bord noir estompera les pointes de l'étoile bien avant que nous atteignions leurs extrémités. En sélectionnant à la fois l'étoile et le masque, puis en utilisant l'entrée de menu contextuel « Définir un masque » (ou Objet > Masque > Définir), on obtient effectivement le résultat escompté (illustré sur un fond en damier pour que vous puissiez voir quelles parties sont translucides).

Quel serait le résultat attendu si, à la place, nous utilisions Objet > Masque > Inverser (LPE) ? En se basant sur le comportement de l'effet Découpe avancée, on peut imaginer que le milieu de l'étoile sera découpé, laissant les pointes en place, mais s'estompant vers un grand trou central. C'est certainement ce à quoi je m'attendais la première fois que j'ai utilisé cet effet, mais le résultat réel est quelque peu différent.

Regardons de plus près les paramètres du LPE pour comprendre exactement ce qui se passe ici.

Interestingly, despite having selected “Set Inverse (LPE)”, the “Invert mask” option is not checked. Instead all the hard work is being done by the “Add background to mask” checkbox, and the color picker below it. This has the effect of adding a flat colored background to your mask, which covers the bounding box of the element you’re masking. In this case, it adds a white background which combines with our original mask to produce an effective mask that looks like this. With that in mind, the end result is a little more understandable. But it’s not exactly what I would expect from a menu entry that bills itself as an “inverse mask”. Perhaps if we enable the “Invert mask” option, we’ll get something closer to our expectations… Hmm… not really. The problem now is that we’ve inverted every part of our mask – swapping black for white, light gray for dark gray, and so on – but that also includes the color of the background we’ve added. Now, therefore, the mask looks like this:

Il est intéressant de noter que, bien qu'ayant sélectionné « Inverser (LPE) », l'option « Inverser le masque » n'est pas cochée. Au lieu de cela, tout le travail est effectué par la case à cocher « Ajouter le fond au masque », et le sélecteur de couleur en dessous. Cela a pour effet d'ajouter un arrière-plan de couleur plate à votre masque, qui couvre la boîte de délimitation de l'élément que vous masquez. Dans ce cas, il ajoute un arrière-plan blanc qui, combiné à notre masque original, produit un masque efficace qui ressemble à ceci :

Avec cela en tête, le résultat final est un peu plus compréhensible. Mais ce n'est pas exactement ce que j'attendais d'une entrée de menu qui se présente comme un « masque inversé ». Peut-être que si nous activons l'option « Inverser le masque », nous obtiendrons quelque chose de plus proche de nos attentes…

Hmm… pas vraiment. Le problème, c'est que nous avons inversé chaque partie de notre masque, en remplaçant le noir par le blanc, le gris clair par le gris foncé, etc. Maintenant, le masque ressemble donc à ceci :

Again this explains the output we’re seeing, but it’s still not really what we had expected from an inverse mask. What we need is the hole in the middle from this version, but with the points of the stars still being visible, as we had in the previous one. In other words, we want a black center fading to a white shape that continues to fill the whole bounding box. The way to achieve that is to change the background color to black, so that the “Invert mask” checkbox has the effect of converting it to white. With that change, we finally get the look I was expecting from the outset. To summarise, in order to create what I would consider to be the inverse of my mask, I had to do the following: • Draw the mask • Apply it to the object using Object > Mask > Set Inverse (LPE) • Open the Live Path Effects dialog to access the parameters • Set the “Invert mask” option • Ensure the “Add background” option is checked • Set the background color to black

Encore une fois, cela explique le résultat que nous voyons, mais ce n'est toujours pas ce que nous attendions d'un masque inverse. Ce dont nous avons besoin est le trou au milieu de cette version, mais avec les pointes de l'étoile toujours visibles, comme dans la version précédente. En d'autres termes, nous voulons un centre noir qui s'estompe pour laisser place à une forme blanche qui continue de remplir la totalité de la boîte englobante. La façon d'y parvenir est de changer la couleur de l'arrière-plan en noir, de sorte que la case à cocher « Inverser le masque » ait pour effet de le convertir en blanc. Grâce à cette modification, nous obtenons enfin l'aspect que j'attendais dès le départ.

Pour résumer, afin de créer ce que je considère comme l'inverse de mon masque, j'ai dû procéder comme suit : ••Dessiner le masque. ••L'appliquer à l'objet en utilisant Objet > Masque > Inverser (LPE). ••Ouvrir la boîte de dialogue Effets de Chemin Interactifs pour accéder aux paramètres. ••Définir l'option « Inverser le masque ». ••Vous assurer que l'option « Ajouter le fond au masque » est cochée. ••Définir la couleur de l'arrière-plan sur le noir.

That really is a lot of work, and it’s clear that the “Set Inverse (LPE)” option didn’t really do much to help us out. My advice, therefore, is to skip this LPE entirely, and just construct the mask you need with the right colors from the outset. Here’s what I would actually do to achieve the same result: • Draw a white rectangle that covers the star • Draw a black circle in the middle • Blur the circle, or give it a black-to-white gradient to create the soft edges • Group the circle and rectangle to create the final mask • Select both the mask and the star, then use Object > Mask > Set Admittedly it’s barely any fewer steps, but I’ll wager that this approach is a lot more intuitive to anyone with even a little experience using Inkscape.

C'est vraiment beaucoup de travail, et il est clair que l'option « Inverser (LPE) » n'a pas vraiment fait grand chose pour nous aider. Je vous conseille donc d'ignorer complètement ce LPE et de construire dès le départ le masque dont vous avez besoin avec les bonnes couleurs. Voici ce que je ferais pour obtenir le même résultat : ••Dessiner un rectangle blanc qui couvre l'étoile. ••Dessiner un cercle noir au milieu. ••Flouter le cercle, ou lui donner un dégradé de noir à blanc pour créer des bords doux. ••Regrouper le cercle et le rectangle pour créer le masque final. ••Sélectionner à la fois le masque et l'étoile, puis utiliser Objet > Masque > Définir.

Certes, il n'y a guère moins d'étapes, mais je parie que cette approche est beaucoup plus intuitive pour toute personne ayant ne serait-ce qu'une petite expérience d'Inkscape.

And there you have these two new “power” LPEs which, on the surface, promise so much, yet deliver so little in reality. The Power Clip is potentially useful, but may create problems when you want to release the clip later. The Power Mask just doesn’t do anything that you can’t achieve by hand almost as easily, if not moreso. They’re both useful tools to know about, though – if only so that you understand how to achieve the same results without having to get the LPEs involved at all!

Et voilà ces deux nouveaux LPE « avancés » qui, en surface, promettent tant de choses, mais en réalité en offrent si peu. La Découpe avancée est potentiellement utile, mais peut créer des problèmes lorsque vous voulez libérer le découpage plus tard. Le Masque avancé ne fait rien que vous ne puissiez réaliser à la main presque aussi facilement, sinon plus. Ces deux outils sont néanmoins utiles à connaître, ne serait-ce que pour comprendre comment obtenir les mêmes résultats sans avoir à faire appel aux LPE !

issue182/inkscape.txt · Dernière modification : 2022/07/01 15:50 de andre_domenech