Outils pour utilisateurs

Outils du site


issue116:inkscape

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
issue116:inkscape [2017/01/07 11:16] auntieeissue116:inkscape [2017/01/07 15:05] (Version actuelle) andre_domenech
Ligne 4: Ligne 4:
 In practice, this primitive maps the input values to a range from 0 to 1 rather than 0 to 255, but the result is the same: with the default settings in the filter (“Identity”), every input channel is mapped to the output without being affected. The purpose of the Component Transfer filter is to play around with that simple 45° graph to let you change the way that input values are mapped to output values.** In practice, this primitive maps the input values to a range from 0 to 1 rather than 0 to 255, but the result is the same: with the default settings in the filter (“Identity”), every input channel is mapped to the output without being affected. The purpose of the Component Transfer filter is to play around with that simple 45° graph to let you change the way that input values are mapped to output values.**
  
-Il reste une dernière primitive de filtrage à visiter dans cette série, que j'ai gardé jusqu'à maintenant simplement parce que c'est un nouvel ajout dans la 0.91 ; elle est donc indisponible pour les utilisateurs qui se servent encore de la version 0.48. Le filtre s'appelle Transfert de composantes et son but est d'utiliser une fonction (appelée « fonction de transfert ») pour ajuster la distribution des valeurs dans chaque canal de couleur (ou « composante »). Il vous permet d'ajuster la luminosité ou le contraste, ou de régler des seuils forts pour des effets de postérisation. Comme d'habitude, je commencerai par m'intéresser aux opérations de filtrage sur un seul canal, puis vous pourrez extrapoler à partir de là pour voir comment il se comporte avec trois canaux plus l'alpha.+Il reste une dernière primitive de filtrage à visiter dans cette série, que j'ai gardée jusqu'à maintenant simplement parce que c'est un nouvel ajout dans la 0.91 ; elle est donc indisponible pour les utilisateurs qui se servent encore de la version 0.48. Le filtre s'appelle Transfert de composantes et son but est d'utiliser une fonction (appelée « fonction de transfert ») pour ajuster la distribution des valeurs dans chaque canal de couleur (ou « composante »). Il vous permet d'ajuster la luminosité ou le contraste, ou de régler des seuils forts pour des effets de postérisation. Comme d'habitude, je commencerai par m'intéresser aux opérations de filtrage sur un seul canal, puis vous pourrez extrapoler à partir de là pour voir comment il se comporte avec trois canaux plus l'alpha.
  
 Une couleur unique d'un seul pixel est représentée par un nombre de 0 (pas de couleur) à 255 (complètement saturée). La distribution de ces valeurs est linéaire - augmentant le long d'une ligne droite - et les valeurs par défaut de la primitive Transfert de composantes laissent cette ligne inchangée. Une valeur de 0 dans le filtre entraîne une sortie à 0. 136 donne une sortie à 136. Et ainsi de suite. Ceci peut être représenté dans un graphique, où la valeur du canal entrant dans le filtre est présenté sur l'axe x, et la valeur qui sort du filtre est visible sur l'axe y. Une couleur unique d'un seul pixel est représentée par un nombre de 0 (pas de couleur) à 255 (complètement saturée). La distribution de ces valeurs est linéaire - augmentant le long d'une ligne droite - et les valeurs par défaut de la primitive Transfert de composantes laissent cette ligne inchangée. Une valeur de 0 dans le filtre entraîne une sortie à 0. 136 donne une sortie à 136. Et ainsi de suite. Ceci peut être représenté dans un graphique, où la valeur du canal entrant dans le filtre est présenté sur l'axe x, et la valeur qui sort du filtre est visible sur l'axe y.
  
-En pratique,  cette primitive dispose les valeurs d'entrée entre 0 et 1, plutôt qu'entre 0 et 255, mais le résultat est le même : avec les valeurs par défaut du filtre (« Identité »), chaque canal d'entrée est transféré à la sortie sans être modifié. Le but du filtre Transfert de composantes est de bricoler avec ce graphique simple à 45° pour vous permettre de changer la manière de relier les valeurs d'entrée aux valeurs de sortie.+En pratique,  cette primitive dispose les valeurs d'entrée entre 0 et 1, plutôt qu'entre 0 et 255, mais le résultat est le même : avec les valeurs par défaut du filtre (« Identité »), chaque canal d'entrée est transféré à la sortie sans être modifié. Le but du filtre Transfert de composantes est de bricoler avec ce graphique simple à 45 ° pour vous permettre de changer la manière de relier les valeurs d'entrée aux valeurs de sortie.
  
 **Basic mathematics tells us that a straight line graph like this can be defined by the slope of the line and the point at which it intercepts with the y-axis. One way to modify the mapping, therefore, is to alter the slope and the intercept point – a pair of values provided by the “Linear” option in the filter. The identity line has a slope of 1 – that is, for every increase of 1 along the x axis, the y value also increases by 1. By setting it to a value of 2 we can make the slope steeper, causing the output to appear brighter. Here's how it looks for one channel in the filter dialog: **Basic mathematics tells us that a straight line graph like this can be defined by the slope of the line and the point at which it intercepts with the y-axis. One way to modify the mapping, therefore, is to alter the slope and the intercept point – a pair of values provided by the “Linear” option in the filter. The identity line has a slope of 1 – that is, for every increase of 1 along the x axis, the y value also increases by 1. By setting it to a value of 2 we can make the slope steeper, causing the output to appear brighter. Here's how it looks for one channel in the filter dialog:
Ligne 19: Ligne 19:
 Bear in mind that color channels can't go below 0 or above 127, so the graph changes shape when you hit these limits. As you can see, it becomes horizontal halfway along the x-axis, washing out any values above 127 by turning them completely white. Compensating for this by changing the slope to 0.5 preserves the detail a lot more, because all 255 input values are mapped, rather than just clamping half of them.** Bear in mind that color channels can't go below 0 or above 127, so the graph changes shape when you hit these limits. As you can see, it becomes horizontal halfway along the x-axis, washing out any values above 127 by turning them completely white. Compensating for this by changing the slope to 0.5 preserves the detail a lot more, because all 255 input values are mapped, rather than just clamping half of them.**
  
-Les mathématiques de base nous disent qu'une ligne droite comme celle-ci peut être définie par sa pente et le point où elle coupe l'axe des y. Une façon de modifier la conversion est donc de modifier la pente et le point d'intersection un couple de valeurs fourni dans le filtre par l'option « Linéaire ». La ligne d'identité a une pente de 1 c'est-à-dire que, pour chacun augmentation de 1 sur l'axe des x, la valeur de y augmente de 1. En positionnant cette valeur à 2, nous accentuons la pente, entraînant une plus forte luminosité de la sortie. Voici à quoi ressemble le dialogue du filtre pour un canal :+Les mathématiques de base nous disent qu'une ligne droite comme celle-ci peut être définie par sa pente et le point où elle coupe l'axe des y. Une façon de modifier la conversion est donc de modifier la pente et le point d'intersectionun couple de valeurs fourni dans le filtre par l'option « Linéaire ». La ligne d'identité a une pente de 1c'est-à-dire que, pour chaque augmentation de 1 sur l'axe des x, la valeur de y augmente de 1. En positionnant cette valeur à 2, nous accentuons la pente, entraînant une plus forte luminosité de la sortie. Voici à quoi ressemble le dialogue du filtre pour un canal :
  
 Tout en montrant l'effet sur la pente, j'ai aussi inclus une version de la Joconde en niveaux de gris, avec sur le côté droit le résultat de l'application de ce changement à tous les canaux de couleurs : Tout en montrant l'effet sur la pente, j'ai aussi inclus une version de la Joconde en niveaux de gris, avec sur le côté droit le résultat de l'application de ce changement à tous les canaux de couleurs :
Ligne 39: Ligne 39:
 La valeur de l'interception peut aussi être négative, pour obtenir une sortie plus sombre, à nouveau avec un contraste réduit. Notez bien que la pente peut aussi être négative, ce qui inverse la conversion de sorte que les grandes valeurs sont changées en petites, et vice-versa. Avec une pente de -1 et une interception de 1, la sortie de ce canal est complètement inversée : La valeur de l'interception peut aussi être négative, pour obtenir une sortie plus sombre, à nouveau avec un contraste réduit. Notez bien que la pente peut aussi être négative, ce qui inverse la conversion de sorte que les grandes valeurs sont changées en petites, et vice-versa. Avec une pente de -1 et une interception de 1, la sortie de ce canal est complètement inversée :
  
-Le mode linéaire de la primitive de filtrage considère que vous voulez un simple conversion de l'entrée vers la sortie, pour ajuster la luminosité ou le contraste en modifiant la pente et la position d'une ligne unique. Mais, parfois, une ligne droite unique (même une qui est aplatie aux limites de la plage des couleurs) ne suffit pas. Qu'arrive-t-il si vous voulez que la sortie monte d'abord, puis redescende, de sorte que les valeurs d'extrémités sont converties en faibles valeurs, alors que celles du milieu sont remplacées par des valeurs élevées ? Pour cela, nous disposons du mode « Table ».+Le mode linéaire de la primitive de filtrage considère que vous voulez une simple conversion de l'entrée vers la sortie, pour ajuster la luminosité ou le contraste en modifiant la pente et la position d'une ligne unique. Mais, parfois, une ligne droite unique (même une qui est aplatie aux limites de la plage des couleurs) ne suffit pas. Qu'arrive-t-il si vous voulez que la sortie monte d'abord, puis redescende, de sorte que les valeurs d'extrémités sont converties en faibles valeurs, alors que celles du milieu sont remplacées par des valeurs élevées ? Pour cela, nous disposons du mode « Table ».
  
 « Table » est un peu trompeur, car la table que vous devez fournir est mono-dimensionnelle. « Liste » aurait pu être un meilleur titre, mais table est ce que le groupe de travail SVG a décidé de choisir et ce qu'Inkscape applique. Les nombres de la liste représentent les valeurs de début et de fin d'une série de segments droits ; le nombre de valeurs de la liste détermine combien il y a de segments. Par exemple, la table ci-dessous a cinq valeurs (vous pouvez utiliser des espaces ou des virgules pour les séparer) : « Table » est un peu trompeur, car la table que vous devez fournir est mono-dimensionnelle. « Liste » aurait pu être un meilleur titre, mais table est ce que le groupe de travail SVG a décidé de choisir et ce qu'Inkscape applique. Les nombres de la liste représentent les valeurs de début et de fin d'une série de segments droits ; le nombre de valeurs de la liste détermine combien il y a de segments. Par exemple, la table ci-dessous a cinq valeurs (vous pouvez utiliser des espaces ou des virgules pour les séparer) :
Ligne 63: Ligne 63:
 This one uses values of (1, 0.75, 0.5, 0.25, 0) to posterize Mona down to five shades of gray, whilst inverting the output at the same time:** This one uses values of (1, 0.75, 0.5, 0.25, 0) to posterize Mona down to five shades of gray, whilst inverting the output at the same time:**
  
-Sauf qu'il y une erreur dans Inkscape qui l'empêche de fonctionner correctement. En mode discret, la dernière valeur de votre liste est sautée - ainsi, si vous fournissez deux valeurs en souhaitant obtenir une sortie monochrome, vous verrez que chaque valeur d'entrée est convertie dans la première valeur, et que la seconde n'est jamais utilisée. La solution est évidemment de fournir trois nombres (typiquement en dupliquant le dernier), mais alors le filtre ne fonctionnera pas correctement dans d'autres programmes SVG ou navigateurs Web. Le défaut est suivi sur Launchpad sous l'erreur #1046093, et une solution a été validée pour la prochaine publication 0.92 d'Inkscape, ce qui est bien mais cela veut dire aussi que, si vous fournissez une valeur supplémentaire pour faire fonctionner le filtre en 0.91, votre image sera fausse quand vous ferrez la mise à niveau en 0.92.+Sauf qu'il y une erreur dans Inkscape qui l'empêche de fonctionner correctement. En mode Discret, la dernière valeur de votre liste est sautée. Ainsi, si vous fournissez deux valeurs en souhaitant obtenir une sortie monochrome, vous verrez que chaque valeur d'entrée est convertie dans la première valeur, et que la seconde n'est jamais utilisée. La solution est évidemment de fournir trois nombres (typiquement en dupliquant le dernier), mais alors le filtre ne fonctionnera pas correctement dans d'autres programmes SVG ou navigateurs Web. Le défaut est suivi sur Launchpad sous l'erreur #1046093, et une solution a été validée pour la prochaine publication 0.92 d'Inkscape, ce qui est bienmais cela veut dire aussi que, si vous fournissez une valeur supplémentaire pour faire fonctionner le filtre en 0.91, votre image sera fausse quand vous ferez la mise à niveau en 0.92.
  
 Pour les exemples ci-dessous, j'ai fait comme si Inkscape fonctionnait correctement - gardez simplement en tête que ce que je dis (0, 1) devrait être réellement (0, 1, 1) pour que ça marche dans la version actuelle. A ce propos, voici cette version monochrome, en utilisant une table discrète contenant (0, 1) : Pour les exemples ci-dessous, j'ai fait comme si Inkscape fonctionnait correctement - gardez simplement en tête que ce que je dis (0, 1) devrait être réellement (0, 1, 1) pour que ça marche dans la version actuelle. A ce propos, voici cette version monochrome, en utilisant une table discrète contenant (0, 1) :
Ligne 77: Ligne 77:
 output = Amplitude × inputExponent + Offset** output = Amplitude × inputExponent + Offset**
  
-Une chose que vous aurez probablement déjà constaté pour tous ces modes, c'est que les graphiques sont entièrement constitués de lignes droites horizontales dans le cas de Discret, anguleuses pour Table, Linéaire et Identité. La dernière option ajoute un peu de courbure au graphique, mais ne vous réjouissez pas trop ; elle ne vous permet pas de dessiner une courbe de Bézier quelconque, mais plutôt d'alimenter trois paramètres pour une courbe de correction du gamma.+Une chose que vous aurez probablement déjà constaté pour tous ces modes, c'est que les graphiques sont entièrement constitués de lignes droiteshorizontales dans le cas de Discret, anguleuses pour Table, Linéaire et Identité. La dernière option ajoute un peu de courbure au graphique, mais ne vous réjouissez pas trop ; elle ne vous permet pas de dessiner une courbe de Bézier quelconque, mais plutôt d'alimenter trois paramètres pour une courbe de correction du gamma.
  
-Dans le cas où vous ne seriez pas familier avec la correction du gamma, c'est une conversion non-linéaire des valeurs d'entrée vers celles de sortie, qui est utilisée pour ajuster la luminosité et le contraste d'une image, afin de compenser les différences de luminosité perçue aux deux bouts de la plage. Voyez-la comme une option plus sophistiquée que la simple modification de la pente et du point d'interception utilisés dans le mode Linéaire, car elle permet aux valeurs faibles d'être modifiées plus fortement que les fortes valeurs.+Dans le cas où vous ne seriez pas familier avec la correction du gamma, c'est une conversion non linéaire des valeurs d'entrée vers celles de sortie, qui est utilisée pour ajuster la luminosité et le contraste d'une image, afin de compenser les différences de luminosité perçue aux deux bouts de la plage. Voyez-la comme une option plus sophistiquée que la simple modification de la pente et du point d'interception utilisés dans le mode Linéaire, car elle permet aux valeurs faibles d'être modifiées plus fortement que les fortes valeurs.
  
 Le mode Gamma utilise trois paramètres : l'Amplitude, l'Exposant et l'Offset. La valeur de sortie de la fonction de transfert est calculée par la formule suivante : Le mode Gamma utilise trois paramètres : l'Amplitude, l'Exposant et l'Offset. La valeur de sortie de la fonction de transfert est calculée par la formule suivante :
Ligne 97: Ligne 97:
 Pour éclaircir une image, utilisez simplement une valeur d'exposant inférieure à 1, tel cet exemple avec une valeur de 0,5. Pour éclaircir une image, utilisez simplement une valeur d'exposant inférieure à 1, tel cet exemple avec une valeur de 0,5.
  
-Notez la similarité avec le mode Linéaire avec les pentes à 0,5 (pour foncer) et 2 (pour éclaircir). Le mode Gamma offre souvent un résultat plus détaillé, particulièrement s'il y a des modifications subtiles dans les parties sombres de la plage d'entrée.+Notez la similarité avec le mode Linéaireavec les pentes à 0,5 (pour foncer) et 2 (pour éclaircir). Le mode Gamma offre souvent un résultat plus détaillé, particulièrement s'il y a des modifications subtiles dans les parties sombres de la plage d'entrée.
  
-Bien que j'aie utilisé une image en niveaux de gris pour illustrer ce filtre, vous pouvez en pratique utiliser une fonction de transfert différente pour chaque composante de couleur, ainsi que pour le canal alpha utile pour conserver intact le canal alpha dans le mode Identité alors que vous modifiez les canaux de couleurs, ou, au contraire, pour n'affecter que le canal alpha tout en conservant les couleurs intactes.+Bien que j'aie utilisé une image en niveaux de gris pour illustrer ce filtre, vous pouvez en pratique utiliser une fonction de transfert différente pour chaque composante de couleur, ainsi que pour le canal alphautile pour conserver intact le canal alpha dans le mode Identité alors que vous modifiez les canaux de couleurs, ou, au contraire, pour n'affecter que le canal alpha tout en conservant les couleurs intactes.
  
 **To finish, therefore, here's a final image of Mona in all her colorful glory, with four different component transfers applied. The top left quarter has a Table (1, 0) applied to just the green channel, with the others left as Identity; the top right uses Table (0, 1, 0, 1, 0) on all the color channels; the bottom right uses Discrete (0, 0.25, 0.5, 0.75, 1) on the color channels to posterize the image, and the bottom left uses Table (1, 0) on all the channels to produce a “photographic negative” effect. **To finish, therefore, here's a final image of Mona in all her colorful glory, with four different component transfers applied. The top left quarter has a Table (1, 0) applied to just the green channel, with the others left as Identity; the top right uses Table (0, 1, 0, 1, 0) on all the color channels; the bottom right uses Discrete (0, 0.25, 0.5, 0.75, 1) on the color channels to posterize the image, and the bottom left uses Table (1, 0) on all the channels to produce a “photographic negative” effect.
Ligne 108: Ligne 108:
 Donc, pour finir, voici une image de la Joconde dans toute sa gloire colorée, avec l'application de quatre différents transferts de composantes. Le quart en haut à gauche est une Table (1, 0) appliquée au seul canal vert, avec les trois autres en Identité ; celui du haut à droite utilise une Table (0, 1, 0, 1, 0) sur tous les canaux de couleur ; en bas à droite, Discret (0, 0.25, 0.5, 0.75, 1) est utilisé sur les canaux de couleurs pour postériser l'image, et en bas à gauche, Table (1, 0) est utilisé sur tous les canaux pour produire un effet de « négatif photographique ». Donc, pour finir, voici une image de la Joconde dans toute sa gloire colorée, avec l'application de quatre différents transferts de composantes. Le quart en haut à gauche est une Table (1, 0) appliquée au seul canal vert, avec les trois autres en Identité ; celui du haut à droite utilise une Table (0, 1, 0, 1, 0) sur tous les canaux de couleur ; en bas à droite, Discret (0, 0.25, 0.5, 0.75, 1) est utilisé sur les canaux de couleurs pour postériser l'image, et en bas à gauche, Table (1, 0) est utilisé sur tous les canaux pour produire un effet de « négatif photographique ».
  
-Crédits image +Crédits image : 
-« La Joconde » (aka « Mona Lisa ») par Leonardo da Vinci+La Joconde (aka Mona Lisa) par Leonardo da Vinci
 https://fr.wikipedia.org/wiki/Fichier:Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg https://fr.wikipedia.org/wiki/Fichier:Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg
issue116/inkscape.1483784178.txt.gz · Dernière modification : 2017/01/07 11:16 de auntiee