Over a decade ago, way back in 2014, one of these articles covered the use of clipping paths to efficiently use several parts of a single bitmap image in a design, without the overhead of including multiple copies of the file data (part 32, FCM #92). More recently the same idea was revisited (part 148, FCM #208) with the introduction of the “Crop Image to Clip” option in the context menu for bitmap images. In this case, it’s not so much that the image isn’t included more than once, but rather that most of the unused parts are thrown away, resulting in separate embedded images that may require less storage space in the SVG file. This feature was added in Inkscape 1.3, but it was far from being the headline addition for that version. The most lauded change in Inkscape 1.3 was probably the addition of the Shape Builder tool, which I covered in part 137 of this series (FCM #197). If you’re not familiar with this tool, then I recommend reading that article before continuing with this one. As I described it there, “the ShapeBuilder can be thought of as a convenient way to perform certain Boolean operations between objects,” which hints at its biggest limitation: it only works with vector objects. Until now. As of version 1.4, it works with bitmap images too. Which gives us yet another way to chop up La Giaconda into smaller parts that can be freely rearranged. As before, I plan to isolate her head and hands, so the first step is to drop my bitmap image into Inkscape and draw some shapes marking the areas of the picture that I want to keep.
Il y a plus de dix ans, en 2014, l'un de ces articles traitait de l'utilisation des tracés de découpe pour exploiter efficacement plusieurs parties d'une même image bitmap dans un dessin, sans avoir à inclure plusieurs copies des données du fichier (partie 32, FCM n° 92). Plus récemment, la même idée a été revisitée (partie 148, FCM n° 208) avec l'ajout de l'option « Découper l'image » dans le menu contextuel des images bitmap. Dans ce cas, le problème n'est pas tant que l'image n'est pas incluse plus d'une fois, mais plutôt que la plupart des parties inutilisées sont supprimées, ce qui donne lieu à des images intégrées distinctes, nécessitant moins d'espace de stockage dans le fichier SVG. Cette fonctionnalité a été ajoutée dans Inkscape 1.3, mais elle était loin d'être l'ajout phare de cette version.
Le changement le plus plébiscité dans Inkscape 1.3 est probablement l'ajout de l'Outil de construction de formes, que j'ai abordé dans la partie 137 de cette série (FCM n° 197). Si vous ne connaissez pas cet outil, je vous recommande de lire la partie 137 avant de poursuivre celle-ci. Comme je l'y ai décrit, « L'Outil de construction de formes peut être considéré comme un moyen pratique d'effectuer certaines opérations booléennes entre objets », ce qui laisse entrevoir sa principale limite : il ne fonctionne qu'avec des objets vectoriels. Jusqu'à ce jour.
Dans la version 1.4, il fonctionne également avec les images bitmap. Cela nous offre une autre façon de découper La Joconde en parties plus petites, librement réorganisables. Comme précédemment, je prévois d'isoler sa tête et ses mains. La première étape consiste donc à déposer mon image bitmap dans Inkscape et à dessiner des formes marquant les zones de l'image que je souhaite conserver.
In the 2014 version of this technique I’d now be faced with grouping the image, then entering the group to clone it, copy the clone to the clipboard, exit the group, paste the clone, and use the two ellipses as clipping paths. It does the job well, but requires several steps and too much understanding about the structure you’re ultimately making in the SVG file. The 2024 approach, with Inkscape 1.3 or later, is a little simpler. Rather than creating complex arrangements of groups and clones, you just duplicate the image (Ctrl-D) until you have as many copies as you have shapes to clip with. Each copy is then clipped with one of the shapes – so in this case I will duplicate once, and clip twice. Selecting one of those clipped versions shows a bounding box that makes it clear that the entire image is still present – so all you’ve done so far is drastically increase the size of your file, due to that duplication. The last step, however, is to right-click on each clipped image and select “Crop Image to Clip”. This throws away much of the image content, such that the bounding boxes are now only as large as they need to be, and the status bar will show that the image dimensions have reduced. But this is 2025 and Inkscape 1.4 gives us a new approach that is simpler to apply than both of these. The result will be conceptually closer to the first, but the simplicity alone probably makes this the preferred approach in most cases. The steps are as follows: • Prepare the bitmap image and clipping shapes as before. • Select all of the objects. • Switch to the Shape Builder tool (default keyboard shortcut: X). • Click within each of the clipping shapes so that they are shown with a blue translucent fill (see image below). • Press Enter, or click on the Accept button in the tool control bar.
Dans la version 2014 de cette technique, je devais alors grouper l'image, puis accéder au groupe pour la cloner, copier le clone dans le presse-papiers, quitter le groupe, coller le clone et utiliser les deux ellipses comme chemins de découpe. Cette méthode est efficace, mais nécessite plusieurs étapes et une compréhension approfondie de la structure finale du fichier SVG. L'approche de 2024, avec Inkscape 1.3 ou version ultérieure, est un peu plus simple. Plutôt que de créer des agencements complexes de groupes et de clones, il suffit de dupliquer l'image (Ctrl-D) jusqu'à obtenir autant de copies que de formes à découper. Chaque copie est ensuite découpée avec l'une des formes ; dans ce cas, je duplique une fois et découpe deux fois. La sélection de l'une de ces versions découpées affiche un cadre indiquant clairement que l'image entière est toujours présente ; jusqu'à présent, vous n'avez fait qu'augmenter considérablement la taille de votre fichier en raison de cette duplication.
La dernière étape consiste à faire un clic droit sur chaque image découpée et à sélectionner « Découper l'image ». Cela supprime une grande partie du contenu de l'image, de sorte que les cadres de délimitation sont désormais aussi grands que nécessaire et la barre d'état indique que les dimensions de l'image ont été réduites.
Nous sommes en 2025 et Inkscape 1.4 propose une nouvelle approche, plus simple à appliquer que les deux précédentes. Le résultat sera conceptuellement plus proche de la première, mais sa simplicité à elle seule en fait probablement l'approche privilégiée dans la plupart des cas. Les étapes sont les suivantes : ••Préparez l'image bitmap et les formes de découpe comme précédemment. ••Sélectionnez tous les objets. ••Activez l'Outil de construction de formes (raccourci clavier par défaut : X). ••Cliquez dans chacune des formes de découpe pour les afficher avec un remplissage bleu translucide (voir l'image ci-dessous). ••Appuyez sur Entrée ou cliquez sur le bouton Accepter dans la barre de contrôle des outils.
What you’re left with is similar to the 2014 approach – clipped clones of the original image. But whereas the older approach left the original on the canvas (inside a group), this method moves the original bitmap data into the <defs> section of the SVG content – basically a part of the file that is used to store resources that are required to draw your design (such as gradient and filter definitions), but which do not directly appear on the canvas. Because the original image is no longer present on the canvas, you can’t select it in order to clone it again should you need to create another clipped shape – perhaps focusing on the eyes or the mouth, for example. At first this might seem like a bit of a limitation of this approach compared with the older method, but there is a very simple workaround that renders it a non-issue. If you require another clone of the image, just duplicate (or copy and paste) one of your existing clipped shapes, then release the clip either via the context menu or the Object > Clip > Release Clip menu entry. This will leave you with a clone of the image from the <defs> section, plus a copy of your clipping path, which you can then delete or edit as necessary. Don’t be surprised if the clipping path looks a little different to your original – Inkscape throws away the style data when the path is used for clipping in this way, as it’s no longer necessary. What you’ll see, therefore, is the default SVG rendering of a path with unset fill and stroke – which appears as though it’s got a black fill.
Le résultat est similaire à l'approche de 2014 : des clones découpés de l'image originale. Mais alors que l'ancienne méthode laissait l'original sur le canevas (au sein d'un groupe), cette méthode déplace les données bitmap d'origine dans la section <defs> du contenu SVG – une partie du fichier utilisée pour stocker les ressources nécessaires au dessin (comme les définitions de dégradé et de filtre), mais qui n'apparaissent pas directement sur le canevas.
L'image originale n'étant plus présente sur le canevas, vous ne pouvez pas la sélectionner pour la cloner à nouveau si vous devez créer une autre forme découpée, par exemple en vous concentrant sur les yeux ou la bouche. À première vue, cela peut sembler une limitation de cette approche par rapport à l'ancienne méthode, mais il existe une solution très simple pour résoudre ce problème.
Si vous avez besoin d'un autre clone de l'image, dupliquez (ou copiez-collez) l'une de vos formes découpées existantes, puis relâchez la découpe via le menu contextuel ou le menu Objet > Découpe > Relâcher la découpe. Vous obtiendrez ainsi un clone de l'image de la section <defs>, ainsi qu'une copie de votre tracé de découpe, que vous pourrez ensuite supprimer ou modifier si nécessaire. Ne soyez pas surpris si le tracé de découpe est légèrement différent de l'original : Inkscape supprime les données de style lorsque le tracé est utilisé pour la découpe de cette manière, car elles ne sont plus nécessaires. Vous verrez donc le rendu SVG par défaut d'un tracé avec un remplissage et un contour non définis, qui semble avoir un remplissage noir.
Of course you’re free to set it back to whatever fill and stroke you prefer for your clipping paths (that’d be transparent fill and bright green stroke, for me) if you want to reuse the path rather than deleting it. Note that if you clip “normally” rather than using the Shape Builder, Inkscape preserves the style information for the path. It’s only the path shape data that is relevant for clipping, so whether the style of a clipping path is conserved or not is irrelevant for your final design. In the event that you change your mind entirely you can, of course, undo the Shape Builder operation to return to the original situation of having the image directly on the canvas and no longer in <defs>. But what if you’ve saved and reloaded, such that you can’t undo back to that step any more, or you’ve made other edits since then that you don’t want to undo? Releasing one of your clipped shapes will, as above, get you a clone of the image plus the clipping path. Selecting the clone and using the Edit > Clone > Unlink Clone menu entry will turn the clone back into a real image on the canvas. But beware! This does not remove the image from the <defs> section, so you now have two copies of the image data in your SVG file, bloating its size. Assuming nothing else is using the <defs> version (i.e. you’ve removed all the clones from your document), you can use File > Clean Up Document to clear out any unused entries in the <defs> section, including the image data.
Bien sûr, vous êtes libre de rétablir le fond et le contour de vos tracés de découpe (remplissage transparent et contour vert vif, pour moi) si vous souhaitez réutiliser le tracé plutôt que de le supprimer. Notez que si vous découpez « normalement » plutôt que d'utiliser l'Outil de construction de formes, Inkscape conserve les informations de style du tracé. Seules les données de forme du tracé sont pertinentes pour la découpe ; la conservation du style d'un tracé de découpe n'a donc aucune incidence sur votre création finale.
Si vous changez d'avis, vous pouvez bien sûr annuler l'opération de l'Outil de construction de formes pour revenir à la situation initiale : l'image était directement sur le canevas et non plus dans les <defs>. Mais que se passe-t-il si vous avez enregistré et rechargé l'image, de sorte que vous ne pouvez plus revenir à cette étape, ou si, depuis, vous avez effectué d'autres modifications que vous ne souhaitez pas annuler ? Libérer l'une de vos formes découpées vous permettra, comme indiqué ci-dessus, d'obtenir un clone de l'image et du tracé de découpe. En sélectionnant le clone et en utilisant le menu Édition > Cloner > Supprimer le clone, le clone redevient une image réelle sur le canevas. Attention ! Cela ne supprime pas l'image de la section <defs>. Vous avez donc deux copies des données de l'image dans votre fichier SVG, ce qui augmente sa taille. Si aucun autre élément n'utilise la version <defs> (c'est-à-dire que vous avez supprimé tous les clones de votre document), vous pouvez utiliser Fichier > Nettoyer le document pour supprimer toutes les entrées inutilisées de la section <defs>, y compris les données de l'image.
When using the Shape Builder with a bitmap image, it’s also extremely easy to create an ‘inverse clip’. We’ve looked at how to clip the image to leave only the areas enclosed by paths, but it’s just as easy to remove only those areas instead. Consider, for example, creating a version of the image with the face punched out (so to speak). For this, the steps are very similar to the earlier ones: • Prepare the bitmap image and clipping shape. • Select all of the objects. • Switch to the Shape Builder tool (default keyboard shortcut: X). • Click on the image, outside of the clipping shape. • Press Enter, or click on the Accept button in the tool control bar. Perhaps what’s most interesting here is the clipping path that’s being used. It’s no longer the path you originally drew, but rather a complex path which covers the image and has a hole in it that corresponds to your original clipping path. In other words, an ‘inverse’ clipping path. Release the clip to see it in all its unset fill glory Creating an inverse clipping path has historically required manual work with Boolean operations.
Lorsque vous utilisez l'Outil de construction de formes avec une image bitmap, il est également très facile de créer une « découpe inversée ». Nous avons vu comment découper l'image pour ne conserver que les zones délimitées par des tracés, mais il est tout aussi simple de supprimer uniquement ces zones. Imaginez, par exemple, de créer une version de l'image où le visage n'existe plus (pour ainsi dire). Pour cela, les étapes sont très similaires aux précédentes : ••Préparez l'image bitmap et la forme de découpe. ••Sélectionnez tous les objets. ••Activez l'outil de construction de formes (raccourci clavier par défaut : X). ••Cliquez sur l'image, en dehors de la forme de découpe. ••Appuyez sur Entrée ou cliquez sur le bouton Accepter dans la barre de contrôle des outils.
Le plus intéressant ici est peut-être le tracé de découpe utilisé. Il ne s'agit plus du tracé initialement dessiné, mais d'un tracé complexe qui recouvre l'image et comporte un trou correspondant au tracé d'origine. Autrement dit, un tracé de découpe « inverse ». Relâchez le clip pour le voir dans toute sa splendeur.
La création d'un tracé de découpe inverse a toujours nécessité un travail manuel avec des opérations booléennes.
More recently, Inkscape has had a direct means to achieve this via Object > Clip > Set Inverse Clip (LPE) but, as the name suggests, this uses a Live Path Effect rather than just creating a suitable inverse path. It also doesn’t work on bitmap images, so it’s a non-starter in this specific case. The Shape Builder approach is much, much simpler than trying to create a suitable inverse path yourself, so it’s definitely the approach I will use in future. If you do want your original, non-inverse, path back when you release the clip, just select the inverse clipping path, use Path > Break Apart, and remove the outer part. Although this specific example results in a complex clipping mask, that won’t always be the case. For disjointed areas, the Shape Builder will more commonly produce separate clipping paths – as in the case of the separate ellipses for face and hands at the start of this article. Consider these two uses of the Shape Builder: The top design results in a single complex clipping path consisting of an inner and an outer loop. The bottom design results in two clipping paths: one simple path for the eyes, and a complex path for the outer section. Each of the resultant shapes in the bottom design can be moved independently, which may not necessarily be what you want.
Plus récemment, Inkscape a proposé un moyen direct d'y parvenir via Objet > Découpe > Découpe Inversée. Cependant, comme son nom l'indique, cette méthode utilise un effet de tracé dynamique plutôt que de simplement créer un tracé inverse approprié. De plus, elle ne fonctionne pas sur les images bitmap ; elle est donc vouée à l'échec dans ce cas précis. L'approche de l'Outil de construction de formes est bien plus simple que de créer soi-même un tracé inverse approprié ; c'est donc celle que j'utiliserai sans hésiter à l'avenir.
Si vous souhaitez récupérer votre tracé original, non inversé, lorsque vous relâchez la découpe, sélectionnez simplement le tracé de découpe inverse, utilisez Chemin > Séparer et supprimez la partie extérieure.
Bien que cet exemple spécifique produise un masque de découpe complexe, ce n'est pas toujours le cas. Pour les zones disjointes, l'Outil de construction de formes produit généralement des tracés de découpe distincts, comme dans le cas des ellipses distinctes pour le visage et les mains, présentées au début de cet article. Considérez ces deux utilisations de l'Outil de construction de formes :
Le modèle du haut produit un tracé de découpe complexe unique composé d'une boucle intérieure et d'une boucle extérieure. Le modèle du bas produit deux tracés de découpe : un tracé simple pour les yeux et un tracé complexe pour la section extérieure. Chaque forme résultante du modèle du bas peut être déplacée indépendamment, ce qui n'est pas forcément souhaité.
If you do need to keep several parts relatively positioned after clipping, I strongly advise grouping them immediately after the Shape Builder has done its thing. It is possible to unclip them all, use Path > Combine to turn all the clipping paths into a single complex path, remove the excess clones and then re-clip a single remaining clone to create the same visible result with just a single clipping path – but there are very few cases where such extra effort would be warranted. Will the Shape Builder be the last word in techniques for chopping up bitmap images into smaller parts? Only time will tell. But it’s definitely easier and more intuitive than the older approaches, so it will be my preferred approach for such work – for the time being, at least. Image Credits “La Gioconda” (aka “Mona Lisa”) by Leonardo da Vinci http://en.wikipedia.org/wiki/File:Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg
Si vous devez conserver plusieurs parties positionnées les unes par rapport aux autres après la découpe, je vous conseille vivement de les regrouper immédiatement après l'opération de l'Outil de construction de formes. Il est possible de les déclipser toutes, d'utiliser Chemin > Combiner pour transformer tous les chemins de découpe en un seul chemin complexe, de supprimer les clones superflus, puis de reclipser un seul clone restant pour obtenir le même résultat visible avec un seul chemin de découpe. Cependant, un tel effort supplémentaire est rarement justifié.
L'Outil de construction de formes sera-t-il la technique ultime pour découper des images bitmap en parties plus petites ? Seul l'avenir nous le dira. Mais c'est assurément plus simple et plus intuitif que les anciennes approches ; c'est donc ma méthode préférée pour ce type de travail, du moins pour le moment.
Crédits image : « La Joconde » (alias « Mona Lisa ») de Léonard de Vinci http://en.wikipedia.org/wiki/File:Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg