Bonjour
Voici un moment que je bute sur ce problème:
J'aimerais sauvegarder une image du résultat crée en cours de sketch (processing) pour la réinjecter par la suite dans ce même sketch via un ordre clavier.
En d'autres termes, je voudrais mettre dans une sorte de mémoire tampon la dernière sauvegarde afin de pouvoir éventuellement la réutiliser
Voici en gros le scenario: je dessine en "live" sous processing (camera + tablette) donc de temps en temps , quand le résultat est OK, je sauvegarde (en écrasant ou non la précédente sauvegarde) avec le clavier, mais si la direction prise par le scenario ne me satisfait pas, j'aimerai rappeler l' étape (x-1) pour la réinjecter dans le script.
Est ce possible?
Hors ligne
Cela est possible en utilisant la fonction saveFrame(). Voici un petit programme pour illustrer le fonctionnement :
void setup() { size(400, 400); background(0); stroke(255); } void draw() { line(pmouseX, pmouseY, mouseX, mouseY); } void keyPressed() { if ((key == 's') || (key == 'S')) { saveFrame("image.jpg"); } if ((key == 'l') || (key == 'L')) { PImage img = loadImage("image.jpg"); image(img, 0, 0); } }
Hors ligne
Impec, merci Mushussu pour cette réponse rapide qui fonctionne parfaitement
je croyais que la fonction "loadImage " allait seulement chercher dans le dossier "data".
Hors ligne
Il est même possible, si tu ne veux rien copier dans un dossier,
d'utiliser la fonction copy() :
Et ainsi tout se passe dans ton sketch, si tu es sur un navigateur ça peut être utile.
Hors ligne
Si tu es dans un navigateur ou que tu ne veux pas d'accès disque alors il vaut mieux utiliser la fonction get() :
PImage p; void setup() { size(400, 400); background(0); stroke(255); } void draw() { line(pmouseX, pmouseY, mouseX, mouseY); } void keyPressed() { if ((key == 's') || (key == 'S')) { p = get(); } if ((key == 'l') || (key == 'L')) { image(p, 0, 0); } }
Hors ligne
Pages: 1