ciao!
uso questo codice per applicare un watermark alle immagini:
codice:
private void addWatermark(String text, File input) {
try {
BufferedImage bi = ImageIO.read(input);
Graphics2D g2d = (Graphics2D) bi.getGraphics();
AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.1f);
g2d.setComposite(ac);
g2d.setColor(Color.BLACK);
g2d.setFont(new Font("Arial", Font.BOLD, 100));
FontMetrics fontMetrics = g2d.getFontMetrics();
Rectangle2D rect = fontMetrics.getStringBounds(text, g2d);
int centerX = (bi.getWidth() - (int) rect.getWidth()) / 2;
int centerY = bi.getHeight() / 2;
// g2d.drawString(text, centerX, centerY);
g2d.drawString(text, centerX, 90);
File output = new File(finalDir + "/" + input.getName());
ImageIO.write(bi, "jpg", output);
g2d.dispose();
System.out.println("Watermark aggiunto all'immagine: " + input.getAbsolutePath());
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
funziona abbastanza bene, con solo due piccoli problemi:
- la scritta non è nera, ma grigia
- la dimensione del font non è sempre la stessa
come posso risolvere??