1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| File imageFile = new File(imageSrc);
// On créé un 1er buffer pour calculer la taille du mnemo à écrire
BufferedImage buffer=new BufferedImage(1,1,BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = buffer.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
FontRenderContext fc = g2.getFontRenderContext();
Rectangle2D bounds = font.getStringBounds(mnemo,fc);
// Taille du texte
int width = (int) bounds.getWidth();
//int height = (int) bounds.getHeight();
// On créé un objet Image avec le fichier File
Image image = ImageIO.read(imageFile);
// On créé le buffer final
buffer=new BufferedImage(image.getWidth(null), image.getHeight(null),BufferedImage.TYPE_INT_RGB);
g2 = buffer.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
// On dessine l'image dans le buffer
g2.drawImage(image,null,null);
// On dessine le message avec tous ses paramètres
g2.setFont(font);
g2.setColor(background);
g2.setColor(color);
// Voir la taille
g2.drawString(mnemo, (image.getWidth(null)-width)/2, image.getHeight(null)/3-1);
// On renvoi le buffer final
_res.setContentType("image/"+format);
_res.setBufferSize(1000000);
// Possible en png ou en jpg
ImageIO.write(buffer, format, os); |