疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java给图片加水印小工具


 

 看到好多博客的图片都加了水印,对于扩大自己博客的知名度还是很有益的
   
    不过要是用插件就太不好了,自己处理呢也比较麻烦
   
    于是自己用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);
   
    }
   
    }
   
    想要这个程序的可以留下邮箱,我发给你