Bonsjours...
J'ai un comportement étrange sur la fonction copy() avec le sketch ci-dessous qui ne fait (enfin, devrait) que copier le contenu d'une image dans elle-même...
(Je passe par un createImage, car le but final, c'est bien d'introduire une modification. Mais voulue... )
Le résultat que j'attends, c'est qu'il ne se passe rien.
Or, à chaque clic, l'image s'assombrit, jusqu'à finir par devenir complètement noir si on clique suffisamment longtemps...
J'ai essayé avec un P5 1.5 et 2.0 (sous Ubuntu). Le résultat est le même.
Est-ce qu'il y a quelque chose qui m'échappe ?
Merci...
PImage tissu; void setup() { tissu = loadImage("tissu.png"); size (tissu.width, tissu.height); } void draw() { image(tissu, 0, 0, tissu.width, tissu.height); } void mousePressed () { PImage newTissu = createImage(tissu.width, tissu.height, RGB); newTissu.copy (tissu, 0, 0, tissu.width, tissu.height, 0, 0, tissu.width, tissu.height); newTissu.save("data/tissu.png"); tissu = loadImage("tissu.png"); }
Dernière modification par Olivier (2013-01-12 13:58:17)
Hors ligne
Bonjour,
j'ai aussi eu des résultats bizarres avec cette fonction 'copy', assombrissement et décalage. Je n'ai plus l'exemple mais je crois que le problème était lié aux dimensions de l'image par rapport à l'écran d'affichage, image plus grande par exemple? J'ai laissé tomber sans trouver et j'utilise loadPixels :
ce qui pourrait donner qq chose comme:
loadPixels(); newTissu.loadPixels(); for (int i = 0; i < (width*height); i++) { newTissu.pixels[i] =tissu.pixels[i]; }
Hors ligne
citation :
était lié aux dimensions de l'image par rapport à l'écran d'affichage
En l’occurrence, dans mon cas, ce n'est pas la scène que je copy(), mais l'image...
Bilan : que l'image soit affichée ou non, le résultat est le même: le png enregistré est de plus en plus sombre...
img.pixels[i] résout effectivement le problème (d'ailleurs, dans un autre sketch, j'avais pu constater que cette solution était plus rapide que copy())
Étrange tout de même, cette histoire...
Je vais attendre quelques éventuels autres points de vue ici, puis je vais faire un ticket sur le bugtracker de P5 (j'imagine qu'il y en a un).
Merci Chrisjo...
Hors ligne
Olivier,
Je suis sous xubuntu 12.04, Processing 2.0b7, j'ai testé ton code et je n'ai pas le même problème que toi. L'image ne noircie pas...
Hors ligne
Bigre...
Je viens de tester sur la 2.0b7 sur Ubuntu 12.04 et j'ai toujours le même problème...
(pour se rendre compte du noircissement, il faut cliquer sur l'image au moins une trentaine de fois...)
Tu es en 64bits ? Tu tournes avec un java particulier ?
Étonnant cette histoire
Hors ligne
Hello,
Ca me rappelle un bug avec la couche alpha, je ne sais pas si ça peut avoir un rapport :
il y a des approximations dans les calculs car les pixels sont codés sur entiers de 32 bits (8 pour R, 8 pour G, 8 pour B, 8 pour alpha et une cuillérée pour tata josiane ) et en multipliant ces calculs, l'approximation augmente à chaque fois l'erreur et puis finalement ça noirçit...
Peut-être jeter un oeil sur le code source, je ne sais pas s'il y a une différence dans l'écriture des fonctions entre les versions 32 et 64bits ?
Probablement à signaler aussi! http://code.google.com/p/processing/issues/list
Hors ligne
pour info je suis en 32 bits et mon java :
java version "1.6.0_24" OpenJDK Runtime Environment (IcedTea6 1.11.5) (6b24-1.11.5-0ubuntu1~12.04.1) OpenJDK Server VM (build 20.0-b12, mixed mode)
Hors ligne
Pages: 1