2016-08-25 3 views
2

Ich versuche ein Wasserzeichen zu einem Bild auf meiner Website hinzuzufügen. Ich möchte, dass das Wasserzeichen angezeigt wird, wenn das Bild heruntergeladen oder auf anderen Websites angezeigt wird. Auf meiner Website möchte ich es ohne das Wasserzeichen zeigen. Es wäre toll, wenn das Wasserzeichen auf das Bild platziert wird. Ist das möglich, das oben erwähnte zu tun, indem man einige Bildmetadaten oder http-Überschriften zum Beispiel verwendet? Oder ist es unmöglich, dies zu tun, und sollte ich dies tun, indem ich beim Hochladen eine Fußzeile hinzufüge und sie verstecke?Wasserzeichen zum Bild hinzufügen

+0

Suchen Sie nach "java watermark image" - es gibt viele Beiträge, dies zu tun. Es ist nicht JavaEE per se, kann aber zum Beispiel in einem Servlet implementiert werden. Es wäre sehr einfach, das Bild ohne es auf Ihrer Website und damit heruntergeladen anzuzeigen. Natürlich geht das davon aus, dass die Version auf Ihrer Website aus irgendeinem Grund nicht wünschenswert ist - zum Beispiel Auflösung. Ansonsten werden die Leute es einfach direkt von dir ohne das Wasserzeichen herunterladen. – stdunbar

+0

Ja, ich kann Google verwenden, Wasserzeichen selbst hinzufügen ist nicht mein Problem. Ich spreche über das Hinzufügen von Wasserzeichen bei Rechtsklick -> Bild speichern/anzeigen. – Fubundzer

+0

Deaktivieren Sie die rechte Maustaste mit Javascript und haben Sie eine "Bild speichern" -Taste. Fügen Sie auf dem gespeicherten Bild das Wasserzeichen hinzu. Es wird niemanden ein wenig entschlossen aufhalten, aber es wird besser als nichts sein. – stdunbar

Antwort

2

können Sie den folgenden Link verweisen:

Text-Wasserzeichen auf Bild hinzufügen

static void addTextWatermark(String text, File sourceImageFile, File destImageFile) { 
    try { 
     BufferedImage sourceImage = ImageIO.read(sourceImageFile); 
     Graphics2D g2d = (Graphics2D) sourceImage.getGraphics(); 

     // initializes necessary graphic properties 
     AlphaComposite alphaChannel = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.1f); 
     g2d.setComposite(alphaChannel); 
     g2d.setColor(Color.BLUE); 
     g2d.setFont(new Font("Arial", Font.BOLD, 64)); 
     FontMetrics fontMetrics = g2d.getFontMetrics(); 
     Rectangle2D rect = fontMetrics.getStringBounds(text, g2d); 

     // calculates the coordinate where the String is painted 
     int centerX = (sourceImage.getWidth() - (int) rect.getWidth())/2; 
     int centerY = sourceImage.getHeight()/2; 

     // paints the textual watermark 
     g2d.drawString(text, centerX, centerY); 

     ImageIO.write(sourceImage, "png", destImageFile); 
     g2d.dispose(); 

     System.out.println("The tex watermark is added to the image."); 

    } catch (IOException ex) { 
     System.err.println(ex); 
    } 
} 

Bild hinzufügen Wasserzeichen Bild

static void addImageWatermark(File watermarkImageFile, File sourceImageFile, File destImageFile) { 
    try { 
     BufferedImage sourceImage = ImageIO.read(sourceImageFile); 
     BufferedImage watermarkImage = ImageIO.read(watermarkImageFile); 

     // initializes necessary graphic properties 
     Graphics2D g2d = (Graphics2D) sourceImage.getGraphics(); 
     AlphaComposite alphaChannel = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f); 
     g2d.setComposite(alphaChannel); 

     // calculates the coordinate where the image is painted 
     int topLeftX = (sourceImage.getWidth() - watermarkImage.getWidth())/2; 
     int topLeftY = (sourceImage.getHeight() - watermarkImage.getHeight())/2; 

     // paints the image watermark 
     g2d.drawImage(watermarkImage, topLeftX, topLeftY, null); 

     ImageIO.write(sourceImage, "png", destImageFile); 
     g2d.dispose(); 

     System.out.println("The image watermark is added to the image."); 

    } catch (IOException ex) { 
     System.err.println(ex); 
    } 
} 

http://www.codejava.net/java-se/graphics/adding-a-watermark-over-an-image-programmatically-using-java

Verwandte Themen