Attached watermarking sign to picture using scripting?

Posted on 2004-08-09
Last Modified: 2010-04-01
Hi there,

I know that my points currently not enough but i'm really would like to know the solution to my problem.

Hope someone will generous enough to help me.......

I would like to display pictures in a browser and i will also put a watermarking into the picture also.
So now my problem is that how to put "watermarking" to the pictures. The pictures are residing in
a when i use <img src="...."> to display it, a script will automatically put a watermarking
to all the pictures.

The watermarking that i'm saying is, for example...some pictures got a word "SAMPLE" attached to
the picture itself......

Usually graphic designer will put the "SAMPLE" word to each pictures in layer.... But i would like to know
if scripting could do the same.........

Please advice me on this...

Thanks in advanced

Question by:kennethcky
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
LVL 35

Accepted Solution

TimYates earned 25 total points
ID: 11750707
Not with javascript...

You could point the IMG src tag at a servlet, and have that servlet load the image you asked for, add some text to it using Java2D, and then return the final image as a JPG...


Author Comment

ID: 11750921

Do you have any Java2D that very close related to my problem that I could take a look?


Author Comment

ID: 11758970
Hi there,

I found a code which could solved my problem, but its using applet.....Could this code converted to
servlet and retrieve the pict from browser(jsp)?

Could someone advice me on this..?



import java.awt.*;
import java.awt.event.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.BufferedImage;
import java.awt.image.DataBuffer;
import java.awt.geom.*;
import javax.swing.*;

public class JPEGJ2d extends JApplet {

    private static Image img;

    public void init() {
        img = getToolkit().getImage(JPEGJ2d.class.getResource("duke.jpg"));
        try {
            MediaTracker tracker = new MediaTracker(this);
            tracker.addImage(img, 0);
        } catch (Exception e) {}

    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
      Dimension d = getSize();
        g2.clearRect(0, 0, d.width, d.height);
      int w = d.width;
      int h = d.height;

        BufferedImage bi = (BufferedImage) createImage(w, h);
        Graphics2D big = bi.createGraphics();

        big.drawImage(img, 0, 0, null);
        big.setFont(new Font("Dialog", Font.PLAIN, 10));
        big.drawString("BufferedImage", 4, 12);

      //To rotate the image, comment the following line
        //g2.drawImage(bi, 0, 0, this);

      //comment including g2.drawimage() if you dont want to rotate
      double x = 0.5*w;
        double y = 0.5*h;
        AffineTransform at = new AffineTransform();
        g2.drawImage(bi, 0, 0, null);

        try {
             File file = new File("images", "test.jpg");
             FileOutputStream out = new FileOutputStream(file);

            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
            JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
            param.setQuality(1.0f, false);

//          ImageIO.write(bi, "jpeg", out);
        } catch (Exception ex) {
            g2.drawString("write permissions on images/test.jpg?", 5, h*2-5);


    public static void main(String argv[]) {
        final JPEGJ2d demo = new JPEGJ2d();
        JFrame f = new JFrame("Java 2D(TM) Demo - JPEGJ2d");
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);}
        f.getContentPane().add("Center", demo);
        f.setSize(new Dimension(400,300));;

Featured Post

[Webinar] How Hackers Steal Your Credentials

Do You Know How Hackers Steal Your Credentials? Join us and Skyport Systems to learn how hackers steal your credentials and why Active Directory must be secure to stop them. Thursday, July 13, 2017 10:00 A.M. PDT

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In part one, we reviewed the prerequisites required for installing SQL Server vNext. In this part we will explore how to install Microsoft's SQL Server on Ubuntu 16.04.
In this blog we highlight approaches to managed security as a service.  We also look into ConnectWise’s value in aiding MSPs’ security management and indicate why critical alerting is a necessary integration.
There's a multitude of different network monitoring solutions out there, and you're probably wondering what makes NetCrunch so special. It's completely agentless, but does let you create an agent, if you desire. It offers powerful scalability …
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…

695 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question