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
Merci !
Hors ligne
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
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
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
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
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
Pages: 1 2