为图片加水印文字

为图片加上水印文字,可以很好的保护自己的版权信息。如在互联网之中,一个优秀、漂亮的图片经常被多次转载,或被其他的网站所盗取利用,这样浏览者就不知道图片的真正出处。但如果为图片加上水印文字说明,就可以很好的保护图片的所属版权。本程序将通过所学习的字符串知识,并借助于已有类来实现图片加水印功能,实例运行效果如图1、图2所示。

1  加入水印效果

2  加入水印效果

 已有类

位置:应用/源码管理/类库/StringPhoto.jar

 关键技术

本程序借助于已有类StringPhoto.jar实现,该已有类中包括FileChooser类与ImagePanel类,下面分别介绍。

1FileChooser

此类实现打开窗口选择本地文件。

l         构造方法

FileChooser类提供无参的构造方法,其语法格式如下:

public FileChooser()

通过此构造方法实例化FileChooser类,将弹出打开图片文件窗口,如图3所示。

3  打开文件窗口

l         getPath()方法

getPath()方法用于获取所选择的文件路径,此方法返回文件路径的字符串形式,如“c:\img.jpg”。其语法格式如下:

public String getPath()

2ImagePanel

是一个图片面板类,主要用于对图片写入文字水印及显示写入水印后的图片,在使用过程直接将其放置于窗体之中。

l         draw()方法

draw()方法用于对图片文件写入水印文字,其语法格式如下:

public void draw(String text, String path)

text参数:写入水印的文字。

path参数:图片路径。

 实现步骤

下面我们来介绍为图片加水印文字的实现步骤。

1)创建一个Java项目,名称为“图片加水印”,并将StringPhoto.jar添加到构建路径。

2)创建一个名称为MainFrameJFrame窗体,窗体标题为“图片加水印”,并将其保存在com.lyq包中。

3)通过选择按钮查找已有类ImagePanel,此类是一个面板对象,可直接将其添加到窗体的中央位置,如图4所示。

5  添加“ImagePanel”面板

添加此面板后,在代码视图中包含如下代码:

final ImagePanel imagePanel = new ImagePanel();

getContentPane().add(imagePanel, BorderLayout.CENTER);

4)在已添加的ImagePanel面板下方,添加文本标签(JLable)、文本框(JTextField)、按钮(JButton)组件,如图5所示:

5  添加所需组件

5)双击“打开文件”按钮为按钮添加事件,在此操作中将通过已有类FileChooser选择文件,然后对选择的文件通过ImagePanel对象写入水印文字,其关键代码如下:

button.addActionListener(new ActionListener() {

   public void actionPerformed(final ActionEvent e) {

      // 获取输入的水印文字

      String text = textField.getText();

      // 对输入进行有效性判断

      if(text == null || text.isEmpty()){

         // 如果没有输入水印文字提示输入水印文字

         JOptionPane.showMessageDialog(null, "请输入水印文字!");

      }else{

         // 实例化已有类FileChooser对象

         FileChooser fileChooser = new FileChooser();

         // 获取所选择文件的路径

         String path = fileChooser.getPath();

         // 对路径字符串进行有效性判断

         if(path != null && !path.isEmpty()){

            // 加入水印文字

            imagePanel.draw(text, path);

         }

      }

   }

});