Java给图片加水印小工具

时间: 2012-06-07 / 分类: Java学习, WordPress / 浏览次数: 1,302 views / 7个评论 发表评论

看到好多博客的图片都加了水印,对于扩大自己博客的知名度还是很有益的
不过要是用插件就太不好了,自己处理呢也比较麻烦
于是自己用Java写了一个给图片加水印的小应用

软件比较简单,如下图

 

有两种水印方式:

1、图案水印

其中文字是加在左上角,图案是加在右下角
点击“选择水印图案”,选择要水印到图片上的图案,点击“选择被水印图”,选择你要水印的图片,然后点击“图案水印”,就顺利完成加水印的操作了

2、水印文字

在方框里输入你想水印的文字,然后选择被水印的图片,点击“文字水印”就完成了
效果图如下

 

水印效果如下:

 

用到的两个类如下

 

public final class ImageUtils {
 public ImageUtils() { 

 } 

 /**
 * 把图片印刷到图片上
 *
 * @param pressImg --
 * 水印文件
 * @param targetImg --
 * 目标文件
 * @param x
 * @param y
 */
 public final static void pressImage(String pressImg, String targetImg,
 int x, int y) {
 try {
 File _file = new File(targetImg);
 Image src = ImageIO.read(_file);
 int wideth = src.getWidth(null);
 int height = src.getHeight(null);
 BufferedImage image = new BufferedImage(wideth, height,
 BufferedImage.TYPE_INT_RGB);
 Graphics g = image.createGraphics();
 g.drawImage(src, 0, 0, wideth, height, null); 

 // 水印文件
 File _filebiao = new File(pressImg);
 Image src_biao = ImageIO.read(_filebiao);
 int wideth_biao = src_biao.getWidth(null);
 int height_biao = src_biao.getHeight(null);
 g.drawImage(src_biao, wideth - wideth_biao - x, height
 - height_biao - y, wideth_biao, height_biao, null);
 g.dispose();
 FileOutputStream out = new FileOutputStream(targetImg);
 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
 encoder.encode(image);
 out.close();
 } catch (Exception e) {
 e.printStackTrace();
 }
 } 

 /**
 * 打印文字水印图片
 *
 * @param pressText
 * --文字
 * @param targetImg --
 * 目标图片
 * @param fontName --
 * 字体名
 * @param fontStyle --
 * 字体样式
 * @param color --
 * 字体颜色
 * @param fontSize --
 * 字体大小
 * @param x --
 * 偏移量
 * @param y
 */ 

 public static void pressText(String pressText, String targetImg,
 String fontName, int fontStyle, int fontSize, int x,
 int y) {
 try {
 File _file = new File(targetImg);
 Image src = ImageIO.read(_file);
 int wideth = src.getWidth(null);
 System.out.println(wideth);//142
 int height = src.getHeight(null);
 System.out.println(height);//49
 BufferedImage image = new BufferedImage(wideth, height,
 BufferedImage.TYPE_INT_RGB);
 Graphics g = image.createGraphics();
 g.drawImage(src, 0, 0, wideth, height, null);
 g.setColor(Color.RED);
 g.setFont(new Font(fontName, fontStyle, fontSize)); 

 g.drawString(pressText, 5, 20); //wideth:142 height:49
 g.dispose();
 FileOutputStream out = new FileOutputStream(targetImg);
 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
 encoder.encode(image);
 out.close();
 } catch (Exception e) {
 System.out.println(e);
 }
 }

 

想要这个程序的可以留下邮箱,我发给你



.

*******************************************************************

上面是广告! 真的是广告!! 真的真的啊!!!

  1. 好东西。 给我发一份吧。
    [email protected]
    顺便把你文章拿走了

-----------------------------------------------------Copyright © 2011-2012--浙ICP备12011997---------------------------- ---------------------- ------------------------

无觅相关文章插件,快速提升流量