Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#16 2017-05-22 23:13:27 Re : Aide pour un pour projet artistique sur Processing

Sofyan
membre
Date d'inscription: 2017-04-06
Messages: 13

Re: Aide pour un pour projet artistique sur Processing



Re à tous, toutes
J'aurai aimé ajouter une image en transparence à l'impression. J'arrive à ajouter tout bêtement une image, mais je n'avais pas pensé au fait que le programme n'imprime qu'une capture du flux vidéo, ce qui ne comprend pas l'image que j'ajoute...
La solution est peut-être toute simple, mais je ne la trouve pas sad

Merci ! smile

Hors ligne

 

#17 2017-05-23 04:24:54 Re : Aide pour un pour projet artistique sur Processing

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Aide pour un pour projet artistique sur Processing



Bonjour,


Tout dépend de l'image que tu ajoutes, est-ce des formes dessinées (rect, ellipse .…) ou des images ?

Si ce sont des formes, voici une solution :

import java.awt.print.*;
import processing.video.*;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.standard.OrientationRequested;

Capture video;
PGraphics img;

void setup() {
  size(640, 480);
  video = new Capture(this, 640, 480);
  video.start();
  img = createGraphics(width, height);
}

void draw() {
  img.beginDraw();
  img.background(video);
  img.stroke(255, 0, 0);
  img.noFill();
  img.strokeWeight(10);
  img.rect(50, 50, width - 100, height - 100);
  img.endDraw();
  image(img, 0, 0);
}

void captureEvent(Capture c) {
  c.read();
}

void keyPressed() {
  PrinterJob job = PrinterJob.getPrinterJob();
  HashPrintRequestAttributeSet attributsImpression = new HashPrintRequestAttributeSet();
  attributsImpression.add(OrientationRequested.LANDSCAPE);
  job.setPrintable(new Impression(img));
  try {
    job.print(attributsImpression);
  }
  catch (PrinterException e1) {
    e1.printStackTrace();
  }
}

Hors ligne

 

#18 2017-05-26 08:36:52 Re : Aide pour un pour projet artistique sur Processing

Sofyan
membre
Date d'inscription: 2017-04-06
Messages: 13

Re: Aide pour un pour projet artistique sur Processing



Ce serait plutôt une image, avec une opacité réduite. Pour être plus précis, c'est une trame de copyright Stockphoto que j'aimerai placer sur les images à la l'impression.

Hors ligne

 

#19 2017-05-27 00:43:57 Re : Aide pour un pour projet artistique sur Processing

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Aide pour un pour projet artistique sur Processing



Bonjour,

Si tu as déjà une image transparente, alors
tu la déclare préalablement dans le setup puis :

void draw() {
  img.beginDraw();
  img.background(video);
  img.image(im, 0, 0);
  img.endDraw();
  image(img, 0, 0);
}

Sino, il existe la méthode tint pour rendre transparent une image. cela donne :

void draw() {
  img.beginDraw();
  img.background(video);
  img.tint(255, 50);
  img.image(im, 0, 0);
  img.endDraw();
  image(img, 0, 0);
}

Hors ligne

 

#20 2017-06-03 17:42:36 Re : Aide pour un pour projet artistique sur Processing

Sofyan
membre
Date d'inscription: 2017-04-06
Messages: 13

Re: Aide pour un pour projet artistique sur Processing



Salut !

Tout d'abord, navré pour la réponse tardive, étant en période d'examen je n'ai pas eu beaucoup d'occasion de poursuivre ce projet, mais maintenant c'est bon !

Alors, j'ai tenté d'utiliser les astuces que tu m'as donné mais je crois que quelque chose manque, il semble ne pas reconnaitre certaines fonctions:

import java.awt.print.*;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.standard.OrientationRequested;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import processing.video.*;

Capture cam;
PImage img;

int xpos = 320;
int ypos = 240;

float redPixela;
float greenPixela;
float bluePixela;

float redPixelb;
float greenPixelb;
float bluePixelb;

float redPixelc;
float greenPixelc;
float bluePixelc;

int compteurTemps;
float circle;


void setup() {
  
size(1366, 768);
 
  cam = new Capture(this, 1366, 768);
  cam.start();
  
  img = loadImage("image.jpg");
  
  
{compteurTemps = second();}}

void draw()
{ img.beginDraw();
  img.background(cam);
  img.tint(255, 50);
  img.image(img, 0, 0);
  img.endDraw();
  image(img, 0, 0, 1366, 768);
}{
  
  if ((second() - compteurTemps + 60) % 60 == 10) {
    compteurTemps = second();
    
    //-----------------------------------
              
    color b= cam.get (xpos +0, ypos +0);
    float redPixelb = red(b);
    float greenPixelb = green(b);

             if (redPixelb > greenPixelb) 
             { impression(img); }
             
    color c= cam.get (xpos +0, ypos +0);
    float greenPixelc = green(c);
    float bluePixelc = blue(c);
    
             if (bluePixelc > greenPixelc)
              { impression(img);}
              
    //-----------------------------------
  } 
 }

void captureEvent(Capture c) {
  c.read();
}

void impression(PImage imago) {
  PrinterJob job = PrinterJob.getPrinterJob();
  HashPrintRequestAttributeSet attributsImpression = new HashPrintRequestAttributeSet();
  attributsImpression.add(OrientationRequested.LANDSCAPE);
  job.setPrintable(new Impression(imago));
  try {
    job.print(attributsImpression);
  }
  catch (PrinterException e1) {
    e1.printStackTrace();
  }
}

public class Impression implements Printable {
  PImage img;

  Impression(PImage _img) {
    img = _img;
  }

  @Override 
  public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
    if (pageIndex > 0) {
      return NO_SUCH_PAGE;
    }
    int largeur = (int)pageFormat.getImageableWidth();
    int hauteur = (int)pageFormat.getImageableHeight();
    BufferedImage imago = (BufferedImage) img.getNative();   
    graphics.drawImage(imago, 0, 0, largeur, hauteur, null);
    return PAGE_EXISTS;
  }
}

Dernière modification par Sofyan (2017-06-03 17:43:47)

Hors ligne

 

#21 2017-06-04 08:15:06 Re : Aide pour un pour projet artistique sur Processing

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Aide pour un pour projet artistique sur Processing



Bonjour,

Voici les corrections apportées. Si tu souhaites une aide plus précise lorsque tu manipules des images dans ton programme, il faut compresser ton dossier en .zip et le joindre au message. cela permet de comprendre plus aisément tes problèmes.

import java.awt.print.*;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.standard.OrientationRequested;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import processing.video.*;

Capture cam;
PImage img;
PGraphics imago;

int xpos = 320;
int ypos = 240;

float redPixela;
float greenPixela;
float bluePixela;

float redPixelb;
float greenPixelb;
float bluePixelb;

float redPixelc;
float greenPixelc;
float bluePixelc;

int compteurTemps;
float circle;

void setup() {
  size(640, 480);
  
  imago = createGraphics(width, height);

  cam = new Capture(this, width, height);
  cam.start();

  img = loadImage("image.jpg");
  compteurTemps = second();
}

void draw() { 
  imago.beginDraw();
  imago.background(cam);
  imago.tint(255, 50);
  imago.image(img, 0, 0);
  imago.endDraw();
  image(imago, 0, 0, width, height);

  if ((second() - compteurTemps + 60) % 60 == 10) {
    compteurTemps = second();

    //-----------------------------------

    color b= cam.get (xpos +0, ypos +0);
    float redPixelb = red(b);
    float greenPixelb = green(b);

    if (redPixelb > greenPixelb) { 
      impression(img);
    }

    color c= cam.get (xpos +0, ypos +0);
    float greenPixelc = green(c);
    float bluePixelc = blue(c);

    if (bluePixelc > greenPixelc) { 
      impression(img);
    }

    //-----------------------------------
  }
}

void captureEvent(Capture c) {
  c.read();
}

void impression(PImage imago) {
  PrinterJob job = PrinterJob.getPrinterJob();
  HashPrintRequestAttributeSet attributsImpression = new HashPrintRequestAttributeSet();
  attributsImpression.add(OrientationRequested.LANDSCAPE);
  job.setPrintable(new Impression(imago));
  try {
    job.print(attributsImpression);
  }
  catch (PrinterException e1) {
    e1.printStackTrace();
  }
}

public class Impression implements Printable {
  PImage img;

  Impression(PImage _img) {
    img = _img;
  }

  @Override 
    public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
    if (pageIndex > 0) {
      return NO_SUCH_PAGE;
    }
    int largeur = (int)pageFormat.getImageableWidth();
    int hauteur = (int)pageFormat.getImageableHeight();
    BufferedImage imago = (BufferedImage) img.getNative();   
    graphics.drawImage(imago, 0, 0, largeur, hauteur, null);
    return PAGE_EXISTS;
  }
}

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024