Oui et non. Le problème n'est pas tellement d'être destructif ou non, c'est d'être répétable.
C'est exactement ce que signifie "non destructif" dans ce contexte. Ou pour être plus précis: on doit toujours pouvoir revenir aux données d'origine, au bit près, quoi qu'on fasse dans l'image.
D'où ma remarque sur les formats d'image dits "non destructifs" ("non lossy" en anglais), comme png, qui — bien qu'utilisant le même terme — ont en réalité un sens différent dans ce contexte et sont destructifs pour le coup.
Ça pourrait changer avec les prochaines versions de Gimp, qui saura aussi gérer une pile d'effets via GEGL. On peut imaginer d'avoir des opérations faites dans Gimp au milieu du pipeline de Darktable. Mais ça n'arrivera pas demain ;-).
C'est exactement de ce dont on parle, et ce dont parle le blog post de Darktable que j'ai donné en lien.
Avoir une pile d'opérations au dessus de l'image plutôt que de modifier les pixels eux-même est en effet la technique employée à l'heure actuelle pour avoir un flot de travail non destructif. Surtout que même si l'opération était théoriquement bijective, dans les faits si c'est une opération mathématique, l'imprécision sur les nombres peut rendre la bijectivité caduque. Ensuite la haute précision des canaux de travail aide, mais cela reste toujours plus sûr de ne jamais toucher à l'image d'origine.
Ensuite quand est-ce que cela arrivera? Espérons avec la 3.0, si on développe l'UI nécessaire pour cela.
Pour info, GEGL doit permettre de pouvoir partager des "buffers GEGL", c'est à dire en gros l'image en cours de travail, donc 2 programmes sont théoriquement capables de travailler en même temps sur la même image, de manière non destructive, ce qui sera d'une grande aide pour le flot de travail souhaité.
Cela posé, je reviens sur une de tes phrases précédentes:
Ça n'aurait pas vraiment de sens de lancer Gimp dans le flot Darktable : ça me permettrait de faire une modif d'image une fois dans Gimp, mais que se passerait-il si je changeais les réglages côté Darktable après ?
Donc si dans ce contexte, ça a du sens de lancer GIMP dans le flot de Darktable. Que se passe-t-il si tu changes les réglages côté Darktable? Ben dans le workflow idéal qu'on veut tous faire: tu verrais les modifications dans GIMP aussi. Ces modifications auront la forme d'une opération GEGL (un "nœud" dans le graphe des opérations, comme dans le node éditor de Blender en gros). Si GIMP a l'UI adaptée, il serait même capable de modifier les paramètres de l'opération ajoutée par Darktable (et dans tous les cas, il est capable d'en voir le résultat qui passe à travers le moteur GEGL).
Et inversement en modifiant dans GIMP, dans Darktable, cela sera juste une opération supplémentaire que Darktable pourrait être capable de modifier, ou au moins supprimer si l'utilisateur le voulait.
Et donc jusque là, on est tous les deux entièrement d'accord. :-)
La perte d'information, ce n'est pas sur la résolution (l'export en .png la conserve sans problème par exemple), mais sur la profondeur des pixels.
Ben les deux quoi. Et pas seulement d'ailleurs comme je disais, puisque c'est surtout sur le graphe même des opérations effectuées qu'on veut sauvegarder (sans jamais toucher aux pixels d'origine), comme je disais plus haut. Ce que signifiait ma phrase, c'est que si tu travailles sur de la très haute résolution, faire 2 opérations destructives similaires sauvera un peu tes billes. Ensuite cela dépendra des opérations.
Certaines opérations font des calculs sur la valeur des pixels, et dans beaucoup de cas ces calculs sont destructifs. Ex: 3/2 = 1 et 2/2 = 1 dans une précision en entier (et ce même si tu avais une précision super haute!). En faisant ce calcul, on a perdu des données (en faisant l'opération inverse, 1 * 2 = 2, on ne peut être sûr qu'on retombe sur le bon nombre d'origine. Ça se trouve, c'était 3). Dans ce cas, une haute précision des canaux aide beaucoup en effet car la très haute précision signifie que la différence entre 2 et 3 est suffisamment minime pour que l'œil humain ne fasse pas la différence. Donc la perte est toujours réelle, mais acceptable.
D'autres opérations ne font pas de calculs sur la valeur des pixels, mais peuvent par exemple les déplacer. C'est le cas de la rotation dont je parlais tout à l'heure. Pour la rotation, la précision des canaux impacte beaucoup moins. Tu peux avoir une précision de canal aussi haute que tu veux, ça ne change pas grand chose. À certains angles (cad hors 90/180/270°), tes pixels qui étaient bien alignés vont se retrouver non alignés, avec certains pixels qui peuvent sauter et d'autres creés (en moyenne des canaux de pixels limitrophes), etc. Avoir une très haute résolution est ce qui te sauve tes billes dans ce cas, puisque t'as tellement de pixels que les pertes peuvent passer inaperçu. C'est en ce sens que travailler en haute résolution peut produire des pertes raisonnables.
C'est donc tout aussi important, cela dépend vraiment du type d'opération appliquée sur ton image.
Mais au final, encore une fois, ce n'est pas la vraie solution. La solution est de ne jamais toucher l'image d'origine du tout, et donc de ne modifier ni leur valeur, ni leur position. C'est là ce qu'on appelle "non destructif" dans le contexte de cette discussion.
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Darktable
Posté par Jehan (site web personnel, Mastodon) . En réponse à la dépêche Darktable : entrevue avec Johannes Hanika. Évalué à 4.
C'est exactement ce que signifie "non destructif" dans ce contexte. Ou pour être plus précis: on doit toujours pouvoir revenir aux données d'origine, au bit près, quoi qu'on fasse dans l'image.
D'où ma remarque sur les formats d'image dits "non destructifs" ("non lossy" en anglais), comme png, qui — bien qu'utilisant le même terme — ont en réalité un sens différent dans ce contexte et sont destructifs pour le coup.
C'est exactement de ce dont on parle, et ce dont parle le blog post de Darktable que j'ai donné en lien.
Avoir une pile d'opérations au dessus de l'image plutôt que de modifier les pixels eux-même est en effet la technique employée à l'heure actuelle pour avoir un flot de travail non destructif. Surtout que même si l'opération était théoriquement bijective, dans les faits si c'est une opération mathématique, l'imprécision sur les nombres peut rendre la bijectivité caduque. Ensuite la haute précision des canaux de travail aide, mais cela reste toujours plus sûr de ne jamais toucher à l'image d'origine.
Ensuite quand est-ce que cela arrivera? Espérons avec la 3.0, si on développe l'UI nécessaire pour cela.
Pour info, GEGL doit permettre de pouvoir partager des "buffers GEGL", c'est à dire en gros l'image en cours de travail, donc 2 programmes sont théoriquement capables de travailler en même temps sur la même image, de manière non destructive, ce qui sera d'une grande aide pour le flot de travail souhaité.
Cela posé, je reviens sur une de tes phrases précédentes:
Donc si dans ce contexte, ça a du sens de lancer GIMP dans le flot de Darktable. Que se passe-t-il si tu changes les réglages côté Darktable? Ben dans le workflow idéal qu'on veut tous faire: tu verrais les modifications dans GIMP aussi. Ces modifications auront la forme d'une opération GEGL (un "nœud" dans le graphe des opérations, comme dans le node éditor de Blender en gros). Si GIMP a l'UI adaptée, il serait même capable de modifier les paramètres de l'opération ajoutée par Darktable (et dans tous les cas, il est capable d'en voir le résultat qui passe à travers le moteur GEGL).
Et inversement en modifiant dans GIMP, dans Darktable, cela sera juste une opération supplémentaire que Darktable pourrait être capable de modifier, ou au moins supprimer si l'utilisateur le voulait.
Et donc jusque là, on est tous les deux entièrement d'accord. :-)
Ben les deux quoi. Et pas seulement d'ailleurs comme je disais, puisque c'est surtout sur le graphe même des opérations effectuées qu'on veut sauvegarder (sans jamais toucher aux pixels d'origine), comme je disais plus haut. Ce que signifiait ma phrase, c'est que si tu travailles sur de la très haute résolution, faire 2 opérations destructives similaires sauvera un peu tes billes. Ensuite cela dépendra des opérations.
Certaines opérations font des calculs sur la valeur des pixels, et dans beaucoup de cas ces calculs sont destructifs. Ex: 3/2 = 1 et 2/2 = 1 dans une précision en entier (et ce même si tu avais une précision super haute!). En faisant ce calcul, on a perdu des données (en faisant l'opération inverse, 1 * 2 = 2, on ne peut être sûr qu'on retombe sur le bon nombre d'origine. Ça se trouve, c'était 3). Dans ce cas, une haute précision des canaux aide beaucoup en effet car la très haute précision signifie que la différence entre 2 et 3 est suffisamment minime pour que l'œil humain ne fasse pas la différence. Donc la perte est toujours réelle, mais acceptable.
D'autres opérations ne font pas de calculs sur la valeur des pixels, mais peuvent par exemple les déplacer. C'est le cas de la rotation dont je parlais tout à l'heure. Pour la rotation, la précision des canaux impacte beaucoup moins. Tu peux avoir une précision de canal aussi haute que tu veux, ça ne change pas grand chose. À certains angles (cad hors 90/180/270°), tes pixels qui étaient bien alignés vont se retrouver non alignés, avec certains pixels qui peuvent sauter et d'autres creés (en moyenne des canaux de pixels limitrophes), etc. Avoir une très haute résolution est ce qui te sauve tes billes dans ce cas, puisque t'as tellement de pixels que les pertes peuvent passer inaperçu. C'est en ce sens que travailler en haute résolution peut produire des pertes raisonnables.
C'est donc tout aussi important, cela dépend vraiment du type d'opération appliquée sur ton image.
Mais au final, encore une fois, ce n'est pas la vraie solution. La solution est de ne jamais toucher l'image d'origine du tout, et donc de ne modifier ni leur valeur, ni leur position. C'est là ce qu'on appelle "non destructif" dans le contexte de cette discussion.
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]