Wasserzeichen wie vorgehen?

kennux

Mitglied
Also, da ich komplett neu in dem thema Grafik in Java bin möchte ich euch mal ne Frage stellen.
Die Situation ist die folgende:
Ich habe hier knapp 150 Bilder (Mit der Zeit werden es mehr).
Dies sind Artikelbilder für nen Onlineshop.
Ich will in alle bilder ein Wasserzeichen reinbringen.
Eine Schrift im 45° Winkel die transparent sein soll.

Gibt's da evtl. irgend eine möglichkeit die Bilder zu öffnen, dann das Wasserzeichen drüberzulegen und sie wieder zu speichern?

Wäre echt schön wenn mir jemand helfen könnte :)

-KennuX
 

André Uhres

Top Contributor
Versuch's mal so:
Java:
public static void markPicture(final String imageName, final String text,
        final Font textFont, final Color textColor) {
    try {
        File imageFile = new File(imageName);
        Image originalPicture = ImageIO.read(imageFile);
        int width = originalPicture.getWidth(null);
        int height = originalPicture.getHeight(null);
        BufferedImage markedPicture = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D g = markedPicture.createGraphics();
        g.drawImage(originalPicture, 0, 0, width, height, null);
        g.setColor(textColor);
        g.setFont(textFont);
        int textWidth = g.getFontMetrics().stringWidth(text);
        g.rotate(Math.toRadians(45), width / 2, height / 2);
        g.drawString(text, width / 2 - textWidth / 2, height / 2 + textFont.getSize() / 2);
        g.dispose();
        FileOutputStream outStream = new FileOutputStream(imageName);
        JPEGImageEncoder jpegEncoder = JPEGCodec.createJPEGEncoder(outStream);
        jpegEncoder.encode(markedPicture);
        outStream.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
 
Zuletzt bearbeitet:

kennux

Mitglied
Danke für den Code, funktioniert 1a :)
Werde jetzt noch selber versuchen die Transparenz zu setzen. Poste dann wenn alles fertig ist ein fertiges Programm incl. Source :)
 

kennux

Mitglied
So, habe mal schnell ne GUI erstellt mit der man JPEG's öffnen, mit einem Wasserzeichen versehen und wieder speichern kann. Ist nichts besonders, nicht dokumentiert, usw. Sollte nur als kleines Beispiel dienen. Thema erledigt :)
 

Ähnliche Java Themen


Oben