Outils pour utilisateurs

Outils du site


issue218:inkscape

After a couple of false starts, the latest bug fix version of Inkscape is out. There was an attempt to release 1.4.1, which was stopped at the last minute when significant issues were found, so the new version is 1.4.2. But even that suffered a Windows-only problem initially, so had to be repackaged and re-released. The official release date was May 12th 2025, so if you installed a Windows version of 1.4.2 around that time, it might be worth downloading again to make sure you’ve got the latest version. There is a long list of bugs addressed in this release, so it’s worth updating if you’re running 1.4. There are very few new features though, and only one that I think will be worth covering in detail in this column (the Clean Up Paths extension). Some improvements and additions to the import filters are worth mentioning in passing: the importer for Affinity Designer files (added in 1.4) has been substantially improved, and there is a new import filter for Linearity Curve (formerly Vectornator) files. As usual with import filters, if you do experience issues then please raise a bug and provide a file showing the problem, in order for the developers to improve the code further. Continuing with the changes in version 1.4, this month I’m going to look at the Filter Gallery: a new dialog that aims to make it easier for you to preview and select from the many filters that Inkscape ships with. Before I get into that, however, it’s been a while since I did an explanation of how filters actually work in the SVG world, so let’s begin with a quick introduction for anyone new to Inkscape or to SVG, the native format for Inkscape files.

Après quelques faux départs, la dernière version d'Inkscape, avec ses correctifs, est disponible. Une tentative de publication de la version 1.4.1 a été interrompue à la dernière minute suite à la découverte de problèmes importants. La nouvelle version est donc la 1.4.2. Cependant, même cette dernière a rencontré un problème initialement spécifique à Windows et a dû être repackagée et rééditée. La date de sortie officielle était le 12 mai 2025. Si vous avez installé une version Windows de la 1.4.2 à cette date, il peut être judicieux de la télécharger à nouveau pour vous assurer d'avoir la dernière version.

Cette version corrige de nombreux bugs ; il est donc conseillé de la mettre à jour si vous utilisez la 1.4. Elle comporte cependant très peu de nouvelles fonctionnalités, et une seule mérite, à mon avis, d'être détaillée dans cette chronique : l'extension Clean Up Paths. Quelques améliorations et ajouts aux filtres d'importation méritent d'être mentionnés : l'importateur de fichiers Affinity Designer (ajouté dans la version 1.4) a été considérablement amélioré, et un nouveau filtre d'importation est disponible pour les fichiers Linearity Curve (anciennement Vectornator). Comme d'habitude avec les filtres d'importation, si vous rencontrez des problèmes, merci de signaler un bug et de fournir un fichier illustrant le problème afin que les développeurs puissent améliorer le code.

Poursuivant avec les modifications de la version 1.4, je vais ce mois-ci m'intéresser à la Galerie de filtres : une nouvelle boîte de dialogue qui facilite la prévisualisation et la sélection parmi les nombreux filtres fournis par Inkscape. Avant d'aborder ce sujet, sachez que cela fait un moment que je n'ai pas expliqué le fonctionnement des filtres dans le monde SVG. Commençons donc par une brève introduction pour les nouveaux utilisateurs d'Inkscape ou du format SVG, le format natif des fichiers Inkscape.

SVG is an open format for defining vector graphics files. Compared with raster (also known as bitmap) files, vector files are more about defining the way in which an image is drawn, rather than the final result. A raster image consists of lots of individual dots – pixels – whereas a vector file is more of a mathematical description of the parameters needed to draw shapes. A circle in a raster image is actually an approximation made up of a large number of dots; a circle in an SVG image is defined by its center coordinates and radius. Raster files lose quality as they are scaled up or down from their ‘native’ size, whereas vector images – in theory at least – are infinitely resizeable without any loss of quality or resolution. That’s not to say that SVG files are always purely vector data. It’s possible to link to external raster files so that they become part of your image, or to embed the raster data directly into the SVG file itself. This causes something of a dilemma, however, as it means you effectively lose the infinite scalability of your vector file – it now has an optimum size, defined by the raster image. To confuse matters further, you could potentially include multiple raster images, each with a different optimum size, to create an SVG file which no longer scales infinitely without losing quality, but which also no longer has a single optimum size, either. The worst of all worlds. In truth this is often more of a theoretical problem than a practical one. If your original raster images are high enough resolution then they can usually be scaled down quite a bit without the quality suffering, subjectively speaking. Scaling up is more of an issue, but it depends on how your image is going to be used. A blocky raster image might be a problem in a magazine, but that same level of blockiness could be unnoticeable on a billboard poster.

SVG est un format ouvert permettant de définir des fichiers graphiques vectoriels. Comparés aux fichiers raster (aussi appelés bitmap), les fichiers vectoriels définissent davantage la manière dont une image est dessinée que le résultat final. Une image raster est composée de nombreux points individuels – les pixels – tandis qu'un fichier vectoriel est davantage une description mathématique des paramètres nécessaires au dessin de formes. Un cercle dans une image raster est en fait une approximation composée d'un grand nombre de points ; un cercle dans une image SVG est défini par ses coordonnées centrales et son rayon. Les fichiers raster perdent en qualité lorsqu'ils sont agrandis ou réduits par rapport à leur taille « native », tandis que les images vectorielles – du moins en théorie – sont redimensionnables à l'infini sans perte de qualité ni de résolution.

Cela ne signifie pas que les fichiers SVG sont toujours des données purement vectorielles. Il est possible de lier des fichiers raster externes pour les intégrer à votre image, ou d'intégrer les données raster directement dans le fichier SVG lui-même. Cela pose toutefois un problème, car vous perdez ainsi l'évolutivité infinie de votre fichier vectoriel : sa taille optimale est désormais définie par l'image matricielle. Pour compliquer encore les choses, vous pourriez inclure plusieurs images matricielles, chacune avec une taille optimale différente, afin de créer un fichier SVG qui ne s'adapte plus à l'infini sans perte de qualité, mais qui n'a plus non plus de taille optimale unique. Le pire des scénarios.

En réalité, il s'agit souvent d'un problème plus théorique que pratique. Si vos images matricielles d'origine ont une résolution suffisamment élevée, elles peuvent généralement être réduites sensiblement sans que la qualité en pâtisse, subjectivement parlant. L'agrandissement est plus problématique, mais cela dépend de l'utilisation prévue de votre image. Une image matricielle en blocs peut poser problème dans un magazine, mais ce même niveau de blocs peut passer inaperçu sur une affiche.

But, as a general rule, vectors are scalable, rasters are not, and SVG is primarily a vector format. So it might come as a surprise to you if I say that filters are raster operations, despite being one of the core components of the SVG format. At this point, it’s important to consider the output device being used to present your Inkscape image to the world. Like images, output devices broadly fall into two categories: raster and vector. A computer screen, phone or tablet are raster devices – the hardware itself is made up of thousands or millions of individual pixels arranged (usually) in a rectangular grid. Likewise with laser or inkjet printers, which produce their images by placing dots of toner or ink in a rectangular grid on the page. But there are other output devices – such as laser engravers, pen plotters and vinyl cutters – which work with raw vectors in order to move a laser, pen or blade in two dimensions. For those devices, a line isn’t an array of individual dots, but rather instructions to drive a pair of motors controlling the x and y position of the output head in one continuous movement. We’ve got some vector data in our SVG file. We can send that directly to a plotter or cutter (possibly after converting to a different file format) to create images that are, in theory, infinitely scalable. Whether you have a tiny desktop pen plotter, or a large industrial laser cutter, the same basic vector data can be used. The output device will convert the vector geometry into the correct signals to drive those x and y motors.

Mais, en règle générale, les vecteurs sont évolutifs, contrairement aux rasters, et le format SVG est avant tout un format vectoriel. Vous serez donc peut-être surpris d'apprendre que les filtres sont des opérations raster, bien qu'ils soient l'un des composants principaux du format SVG.

À ce stade, il est important de considérer le périphérique de sortie utilisé pour présenter votre image Inkscape. Comme les images, les périphériques de sortie se divisent en deux catégories : raster et vectoriel. Un écran d'ordinateur, un téléphone ou une tablette sont des périphériques raster : le matériel lui-même est composé de milliers, voire de millions, de pixels individuels disposés (généralement) selon une grille rectangulaire. Il en va de même pour les imprimantes laser ou à jet d'encre, qui produisent leurs images en plaçant des points de toner ou d'encre sur une grille rectangulaire. Mais il existe d'autres périphériques de sortie, tels que les graveurs laser, les traceurs à stylo et les traceurs de découpe de vinyle, qui utilisent des vecteurs bruts pour déplacer un laser, un stylo ou une lame en deux dimensions. Pour ces appareils, une ligne n'est pas un ensemble de points individuels, mais plutôt des instructions pour piloter une paire de moteurs contrôlant les positions x et y de la tête de sortie en un mouvement continu.

Notre fichier SVG contient des données vectorielles. Nous pouvons les envoyer directement à un traceur ou à une découpeuse (éventuellement après conversion dans un autre format de fichier) pour créer des images théoriquement infiniment dimensionnables. Que vous disposiez d'un petit traceur à stylet de bureau ou d'une grande machine de découpe laser industrielle, les mêmes données vectorielles de base peuvent être utilisées. Le périphérique de sortie convertira la géométrie vectorielle en signaux corrects pour piloter ces moteurs x et y.

But we can’t send that vector data directly to a screen or printer. Instead we have to turn it into a raster image that the device knows how to handle, through a process called rasterisation. Without going into detail, this basically entails doing the mathematics to work out which part of the vector file should be visible for each pixel of the output. It turns your smooth vectors into a blocky raster – albeit at a resolution high enough that it shouldn’t look particularly blocky on your screen or printed page, unless you inspect it with a magnifying lens. SVG filters apply to the image just before this final rasterisation step. Since this step is only relevant to screens, printers and the like, the first take-home is that filters are useless for any device which receives vector data. It doesn’t matter what your filter looks like, it will be ignored by a pen plotter or vinyl cutter. Laser engravers are a different matter, as they can often also be used to ‘print’ raster graphics by varying the laser’s intensity and drawing lots of dots – but when used as a pure vector cutting device, for example, this same restriction applies. Consider these two images. They may look identical, but the one on the left was created by duplicating one circle and moving it, whereas the one on the right is the result of using a filter.

Mais nous ne pouvons pas envoyer ces données vectorielles directement à un écran ou une imprimante. Il faut les transformer en une image matricielle que l'appareil peut traiter, grâce à un processus appelé rastérisation. Sans entrer dans les détails, cela revient à calculer la partie du fichier vectoriel qui doit être visible pour chaque pixel de sortie. Cela transforme vos vecteurs lisses en une image matricielle en blocs, avec une résolution suffisamment élevée pour qu'elle ne paraisse pas particulièrement matricielle sur votre écran ou sur une page imprimée, à moins de l'inspecter à la loupe.

Les filtres SVG s'appliquent à l'image juste avant cette dernière étape de rastérisation. Cette étape ne concernant que les écrans, les imprimantes et autres appareils similaires, il est important de noter que les filtres sont inutiles pour tout appareil recevant des données vectorielles. Quel que soit l'aspect de votre filtre, il sera ignoré par un traceur à stylet ou une machine de découpe vinyle. Les graveurs laser sont différents, car ils permettent souvent d'« imprimer » des graphiques matriciels en faisant varier l'intensité du laser et en dessinant de nombreux points. Cependant, lorsqu'ils sont utilisés comme appareil de découpe vectorielle pure, par exemple, la même restriction s'applique.

Examinons ces deux images. Elles peuvent sembler identiques, mais celle de gauche a été créée en dupliquant un cercle et en le déplaçant, tandis que celle de droite est le résultat de l'utilisation d'un filtre.

Send these two images to a screen (such as when editing in Inkscape, or loading the SVG image in a web browser), or a printer, and you’ll get four circles in total. Send it to a pen plotter and you’ll get only three – the fourth one isn’t really a vector object, so the plotter won’t be able to do anything with it. So, if one of the circles on the right is actually a raster graphic, we’ll be able to see the blockiness if we zoom in, right? Let’s give it a try by zooming in within Inkscape… It still looks pretty smooth to me. That’s because the filter is applied as one of the very last steps in the rasterisation process, just before it’s displayed on screen. Zooming in within Inkscape isn’t taking a raster version then scaling it, it’s creating a whole new raster image of the zoomed in content. Effectively filters always output at the native resolution of the device they’re being rendered on, creating an optimally sized raster image. This means that you can, to some extent, ignore the distinction between raster and vector for screen or print work – the output will always be the optimum size. From this, I hope you’ve understood that filters are a purely visual thing – they don’t alter the underlying geometry of your objects in any way. All they do is apply a series of operations to determine what color and opacity each rendered output pixel should be, as part of the rasterisation process. Which precise operations are performed will vary from filter to filter, with each filter (or “filter chain”) typically being made up of several “filter elements” which are connected to each other in a network. Each filter element does one job: it could be generating a color or fractal noise pattern as a source of image data for the filter chain; it might blur its input before passing it on; it might remap the colors of the input image. There are many more of these primitives which can be combined to create an incredible variety of filter chains for an infinite range of effects.

Envoyez ces deux images sur un écran (par exemple, lors de l'édition dans Inkscape ou du chargement de l'image SVG dans un navigateur Web) ou sur une imprimante, et vous obtiendrez quatre cercles au total. Envoyez-les à un traceur à plumes et vous n'en obtiendrez que trois ; le quatrième n'étant pas vraiment un objet vectoriel, le traceur ne pourra rien en faire.

Donc, si l'un des cercles de droite est en fait une image matricielle, on verra l'effet de blocs en zoomant, n'est-ce pas ? Essayons de zoomer dans Inkscape…

Le rendu est toujours assez fluide. C'est parce que le filtre est appliqué lors de l'une des toutes dernières étapes du processus de rastérisation, juste avant l'affichage à l'écran. Zoomer dans Inkscape ne consiste pas à prendre une version matricielle puis à la redimensionner, mais à créer une nouvelle image matricielle du contenu agrandi. En effet, les filtres affichent toujours la résolution native de l'appareil sur lequel ils sont rendus, créant ainsi une image matricielle de taille optimale. Cela signifie que vous pouvez, dans une certaine mesure, ignorer la distinction entre raster et vectoriel pour les travaux d'impression ou de sérigraphie : le résultat aura toujours la taille optimale.

J'espère que vous avez compris que les filtres sont purement visuels : ils ne modifient en rien la géométrie sous-jacente de vos objets. Ils se contentent d'appliquer une série d'opérations pour déterminer la couleur et l'opacité de chaque pixel pour le rendu de la sortie , dans le cadre du processus de rastérisation. Les opérations précises effectuées varient d'un filtre à l'autre, chaque filtre (ou « chaîne de filtres ») étant généralement composé de plusieurs « éléments de filtre » connectés les uns aux autres en réseau. Chaque élément de filtre a une fonction : il peut générer une couleur ou un motif de bruit fractal comme source de données d'image pour la chaîne de filtres ; il peut flouter son entrée avant de la transmettre ; il peut remapper les couleurs de l'image d'entrée. Il existe de nombreuses autres primitives de ce type qui peuvent être combinées pour créer une incroyable variété de chaînes de filtres et une infinité d'effets.

In early versions of Inkscape, there were no predefined filters included. There was an editor with which you could make your own – but that’s a skill that most of us simply don’t have. Filter chains can become very complex very quickly. For example, here’s one in which I’ve applied the Textures > Wax Print filter to one of those circles from earlier in the article. The result is on the left, with the corresponding filter chain on the right. This one is relatively simple, with only eight filter elements connected in a mostly linear way, but it’s still not something that most Inkscape users could create for themselves. With version 0.47, the program shipped with a large selection of predefined filters, grouped into related types and exposed via the Filters menu. This was a great step forward, but working out which filter you need for a given design is often a case of trial and error, selecting each filter in succession to see the effect it has. This is made more complex by the fact that filters can be combined, so it’s important to undo (Ctrl-Z) the previous filter before trying the next one, if you really want to see its effect in isolation. With 1.4, however, we finally have a more graphical way to select filters. The menu entries still exist, but at the very top of the Filters menu is now a ‘Filter Gallery…’ option. Selecting this opens a new dialog.

Dans les premières versions d'Inkscape, aucun filtre prédéfini n'était inclus. Un éditeur permettait de créer les siens, mais c'est une compétence que la plupart d'entre nous ne maîtrisent pas. Les chaînes de filtres peuvent rapidement devenir très complexes. Par exemple, en voici une où j'ai appliqué le filtre Textures > Impression à la cire à l'un des cercles mentionnés plus haut. Le résultat est à gauche, et la chaîne de filtres correspondante à droite. Celle-ci est relativement simple, avec seulement huit éléments de filtre connectés de manière quasi linéaire, mais elle reste inaccessible à la plupart des utilisateurs d'Inkscape.

Avec la version 0.47, le programme proposait une large sélection de filtres prédéfinis, regroupés par types apparentés et accessibles via le menu Filtres. C'était une avancée majeure, mais déterminer le filtre adapté à un design donné est souvent une question d'essais et d'erreurs, en sélectionnant chaque filtre successivement pour en voir l'effet. La complexité est accrue par la possibilité de combiner les filtres. Il est donc important d'annuler (Ctrl-Z) le filtre précédent avant d'essayer le suivant, si vous souhaitez réellement observer son effet séparément.

Avec la version 1.4, nous disposons enfin d'une méthode plus graphique pour sélectionner les filtres. Les entrées de menu existent toujours, mais tout en haut du menu Filtres se trouve désormais une option « Galerie de filtres… ». Cette option ouvre une nouvelle boîte de dialogue.

The obvious good news here is that we now have thumbnails that give some idea of the effect each filter might have. All the thumbnails use the same flower-like shape as their base, with no option to change it – a limitation that I’ll come back to shortly. You can alter the thumbnail size using the slider hidden in the Settings pop-up (the ‘cog’ button) – though I have to wonder whether there’s a need for a separate pop-up with only a single entry in it. Surely the slider could have been squeezed into the dialog directly. To the left is a list of the filter categories, matching the categories in the Filter menu. This list also features an “All Filters” entry at the top if you just want to see all the thumbnails at once. The button at the top-left will toggle the visibility of this list. When it’s hidden, the view is automatically switched to show all the filters, which makes sense. Re-showing the list, however, can lead to a mismatch in the UI, whereby all the filters are still visible despite the previously selected category being highlighted. I don’t see that this will be much of an issue though – you’re either the sort of person who uses the categories, in which case it makes no sense to hide the list at all; or you’re the sort of person who prefers the “All Filters” view, in which case you may as well leave the list permanently hidden. Completing the top of the dialog is a disappointing search box. It’s disappointing for two reasons: firstly it searches only the filters for the currently selected category, whereas searching across all filters would make more sense to me; secondly it searches only in the filter name and category, not in the well-worded descriptions that accompany each filter, making it harder to find a filter unless you know its specific name.

La bonne nouvelle, c'est que nous disposons désormais de vignettes qui donnent une idée de l'effet de chaque filtre. Toutes les vignettes utilisent la même forme de fleur comme base, sans possibilité de la modifier – une limitation sur laquelle je reviendrai sous peu. Vous pouvez modifier la taille des vignettes à l'aide du curseur caché dans la fenêtre contextuelle Paramètres (le bouton « rouage »). Je me demande toutefois s'il est nécessaire de créer une fenêtre distincte avec une seule entrée. Le curseur aurait certainement pu être intégré directement à la boîte de dialogue.

À gauche se trouve la liste des catégories de filtres, correspondant à celles du menu Filtre. Cette liste comporte également une entrée « Tous les filtres » en haut, si vous souhaitez afficher toutes les vignettes simultanément. Le bouton en haut à gauche permet d'activer ou de désactiver la visibilité de cette liste. Lorsqu'il est masqué, la vue bascule automatiquement pour afficher tous les filtres, ce qui est logique. Cependant, réafficher la liste peut entraîner une incohérence dans l'interface utilisateur : tous les filtres restent visibles malgré la mise en surbrillance de la catégorie précédemment sélectionnée. Je ne pense pas que cela pose vraiment de problème : soit vous utilisez les catégories, auquel cas masquer la liste n'a aucun sens ; soit vous préférez la vue « Tous les filtres », auquel cas autant laisser la liste masquée définitivement.

En haut de la boîte de dialogue, on trouve un champ de recherche décevant. C'est décevant pour deux raisons : premièrement, la recherche se limite aux filtres de la catégorie sélectionnée, alors qu'une recherche sur tous les filtres me semblerait plus logique ; deuxièmement, la recherche se limite au nom et à la catégorie du filtre, et non aux descriptions claires qui accompagnent chaque filtre, ce qui rend la recherche plus difficile sans connaître son nom précis.

Once you’ve found the filter you want to use, click on the thumbnail to select it. Despite the wording at the top of the dialog (“Select filter to apply”), the act of selecting doesn’t actually apply it. For that you have to click on the “Apply” button, oddly positioned at the bottom-center of the dialog, and your selected filter will be applied. Possibly. You see, there are two types of filter in Inkscape: those that apply immediately, and those which open a dialog to let you adjust the parameters, and even preview the result. In the Filters menu the latter is indicated by an ellipsis (“…”) after the filter name. In the Filter Gallery, however, there’s no indication in the name or the thumbnail as to which filters will open another dialog and which won’t. Only after you’ve made your selection can you tell: the “Apply” button changes to “Apply…” if there’s a dialog to follow. I’d much rather have that information presented on the thumbnails themselves, via an ellipsis, a badge, or some other indicator. Aside from these UI niggles, there’s one big problem with this dialog: the shape used for the thumbnails. It’s not that there’s anything wrong with it, as such – but no single shape can possibly be representative of how a filter will work in all cases. Many filters work best on bold, solid objects – use them on thin filigree lines and they’ll disappear to nothingness. Others might be the opposite, with fine details that work best with thin shapes or sharp angles, rather than the soft roundness of the flower shape in the thumbnails. I’d love to see that settings pop-up extended to allow a choice of preview objects: perhaps some basic primitives such as a triangle, square, star and circle – with the option to have them filled or just use a stroke. And, most of all, the ability to preview using a text sample, in the font of my choice, would make using filters with text a lot more practical.

Une fois le filtre trouvé, cliquez sur sa vignette pour le sélectionner. Malgré l'indication en haut de la boîte de dialogue (« Sélectionner le filtre à appliquer »), la sélection ne l'applique pas. Pour cela, cliquez sur le bouton « Appliquer », étrangement positionné en bas au centre de la boîte de dialogue, et le filtre sélectionné sera appliqué. Probablement.

Voyez-vous, il existe deux types de filtres dans Inkscape : ceux qui s'appliquent immédiatement et ceux qui ouvrent une boîte de dialogue pour vous permettre d'ajuster les paramètres et même de prévisualiser le résultat. Dans le menu « Filtres », ces derniers sont indiqués par des points de suspension (« … ») après le nom du filtre. Dans la Galerie de filtres, en revanche, ni le nom ni la vignette n'indiquent quels filtres ouvriront une autre boîte de dialogue et lesquels n'ouvriront pas. Ce n'est qu'après avoir fait votre sélection que vous pouvez le savoir : le bouton « Appliquer » se transforme en « Appliquer… » si une boîte de dialogue s'ouvre ensuite. Je préférerais de loin que ces informations soient présentées sur les vignettes elles-mêmes, via des points de suspension, un badge ou un autre indicateur.

Outre ces petits soucis d'interface, cette boîte de dialogue présente un problème majeur : la forme utilisée pour les vignettes. Ce n'est pas un problème en soi, mais aucune forme ne peut être représentative du fonctionnement d'un filtre dans tous les cas. De nombreux filtres fonctionnent mieux sur des objets épais et pleins : utilisez-les sur des lignes fines et filigranées et ils disparaîtront. D'autres, au contraire, privilégient les détails fins aux formes fines ou aux angles prononcés, plutôt qu'à la rondeur douce de la forme de fleur des vignettes. J'aimerais que la fenêtre contextuelle des paramètres soit étendue pour permettre un choix d'objets d'aperçu : peut-être quelques primitives de base comme un triangle, un carré, une étoile et un cercle, avec la possibilité de les remplir ou de les contourner. Et surtout, la possibilité de prévisualiser à l'aide d'un échantillon de texte, dans la police de mon choix, rendrait l'utilisation de filtres avec du texte beaucoup plus pratique.

This may seem like nit-picking, but you’ll quickly find that the thumbnails can be very, very misleading. Consider the crimson circle from earlier: here’s what it looks like with three of the filters, alongside the thumbnails for reference: The result of the top one is less “Fat Oil” and more “grease stain”. The second doesn’t give me the thin black stroke I expected from the “Jigsaw Piece” preview, but rather a super-thick outline instead. And “Matte Bevel” just causes the crimson circle to disappear entirely – to the extent that I’ve left the selection box visible, to provide some evidence of its existence. This isn’t a problem with the new dialog, so much as it is an issue with SVG filters in general. This is where I come back round to that distinction between vector and raster. Filters can themselves contain raster data – and often do. Some filter primitives require a raster graphic which is used as part of its operation. For example, the feDisplacementMap element often uses a raster graphic as a way of storing a 2D matrix of numbers that are used to define x and y displacements. Similarly, the commonly used feTurbulence primitive generates an array of random(ish) data, but does so with a “size” parameter that defines the resolution of the noise it creates. Here’s the output of that filter applied to two rectangles, with the only difference between them being the value of the size parameter:

Cela peut paraître tatillon, mais vous constaterez rapidement que les vignettes peuvent être très trompeuses. Prenons l'exemple du cercle cramoisi de tout à l'heure : voici à quoi il ressemble avec trois des filtres, à côté des vignettes pour référence :

Le résultat du filtre du haut fait moins « Huile grasse » que « Tache de graisse ». Le second ne produit pas le trait noir fin que j'attendais de l'aperçu « Pièce de puzzle », mais plutôt un contour très épais. Quant à « Biseau mat », il fait simplement disparaître complètement le cercle cramoisi, à tel point que j'ai laissé la zone de sélection visible pour prouver son existence.

Ce n'est pas un problème de la nouvelle boîte de dialogue, mais plutôt avec les filtres SVG en général. C'est là que je reviens à la distinction entre vecteur et raster. Les filtres peuvent eux-mêmes contenir des données raster, et c'est souvent le cas. Certaines primitives de filtre nécessitent une image raster pour fonctionner. Par exemple, l'élément feDisplacementMap utilise souvent une image raster pour stocker une matrice 2D de nombres servant à définir les déplacements x et y.

De même, la primitive feTurbulence, couramment utilisée, génère un tableau de données aléatoires, mais avec un paramètre « taille » définissant la résolution du bruit généré. Voici le résultat de ce filtre appliqué à deux rectangles, la seule différence étant la valeur du paramètre « taille » :

This size parameter remains constant in the filter, whether it’s applied to a large object or a small one – or to a small one that’s then resized to make it larger (or vice versa). There’s no way to link the size parameter to the final dimensions of the object it’s being applied to in order to make it change when the object’s size is altered. That’s just the way SVG filters work, but it does mean that they can be extremely sensitive to the size of the object you’re applying them to. Here’s that “Fat Oil” filter again, this time applied to four filled circles. Clearly it works as expected for larger objects, but not so well for smaller ones. For this reason, while I applaud the addition of this dialog, please don’t get too excited by the possibilities the thumbnails suggest. It’s not until a filter is applied to your objects in your drawing that you can really see whether or not you’ll get the effect you expected. Perhaps, one day, we’ll get live on-canvas previews of all the filters so we can more easily select the right one for each design. Until then, the Filter Gallery is perhaps most useful as a way to definitively rule out some filters, rather than as a means to choose a specific one. Even when using this dialog, I still find myself following the familiar approach of applying a filter, then undoing, then applying another, and so on. The difference now is that it’s easier to skip the ones that are more obviously wrong.

Ce paramètre de taille reste constant dans le filtre, qu'il soit appliqué à un objet grand ou petit, ou à un petit objet redimensionné pour l'agrandir (ou inversement). Il est impossible de lier ce paramètre aux dimensions finales de l'objet auquel il est appliqué pour le modifier lorsque sa taille est modifiée. C'est le fonctionnement des filtres SVG, mais cela signifie qu'ils peuvent être extrêmement sensibles à la taille de l'objet auquel ils sont appliqués. Reprenons le filtre « Huile grasse », appliqué cette fois à quatre cercles pleins. Il fonctionne clairement comme prévu pour les objets plus grands, mais moins bien pour les plus petits.

C'est pourquoi, même si j'applaudis à l'ajout de cette boîte de dialogue, ne vous laissez pas trop emporter par les possibilités suggérées par les vignettes. Ce n'est qu'après avoir appliqué un filtre à vos objets dans votre dessin que vous pourrez réellement voir si vous obtienez l'effet escompté. Peut-être qu'un jour, nous aurons des aperçus en direct de tous les filtres sur le canevas, afin de pouvoir sélectionner plus facilement le filtre adapté à chaque dessin. En attendant, la Galerie de filtres est peut-être plus utile pour éliminer définitivement certains filtres que pour en choisir un en particulier. Même avec cette boîte de dialogue, je continue à appliquer un filtre, puis à l'annuler, puis à en appliquer un autre, et ainsi de suite. La différence, c'est qu'il est désormais plus facile d'ignorer ceux qui ne sont manifestement pas corrects.

issue218/inkscape.txt · Dernière modification : 2025/07/01 08:09 de d52fr