?
Solved

Attached watermarking sign to picture using scripting?

Posted on 2004-08-09
3
Medium Priority
?
219 Views
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 folder...so 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

0
Comment
Question by:kennethcky
[X]
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
3 Comments
 
LVL 35

Accepted Solution

by:
TimYates earned 100 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...

Tim
0
 

Author Comment

by:kennethcky
ID: 11750921
hi,

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


thanks
0
 

Author Comment

by:kennethcky
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..?

thanks

---------------------------------------------------------------------------------

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 java.io.*;
import javax.swing.*;


public class JPEGJ2d extends JApplet {

    private static Image img;

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


    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
      Dimension d = getSize();
        g2.setBackground(getBackground());
        g2.clearRect(0, 0, d.width, d.height);
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                            RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHint(RenderingHints.KEY_RENDERING,
                            RenderingHints.VALUE_RENDER_QUALITY);
      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.setColor(Color.black);
        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();
        at.rotate(Math.toRadians(90),x,y);
        g2.transform(at);
        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);
            encoder.setJPEGEncodeParam(param);
            encoder.encode(bi);

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

          g2.dispose();
       
    }


    public static void main(String argv[]) {
        final JPEGJ2d demo = new JPEGJ2d();
        demo.init();
        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.pack();
        f.setSize(new Dimension(400,300));
        f.show();
    }
}
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

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

Introducing Priority Question, our latest feature.
The top devops trends for 2017 are focused on improved deployment frequency, decreased lead time for change and decreased MTTR.
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…
Suggested Courses
Course of the Month9 days, 7 hours left to enroll

762 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