zoukankan      html  css  js  c++  java
  • 图片批量添加水印并放入到指定文件夹下

    package cn.lyc;

    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;

    public class ImageIO1 {
    //文件地址
    static String path = "C:\Users\86176\Desktop\p";
    public static void main(String[] args) throws IOException {
    //调用递归方法
    add(new File(path));
    }

    //声明静态变量 用于拼接重命名
    static int num = 0;
    //路径,用于新文件创建的地方
    static String url = "C:\Users\86176\Desktop\pl\";
    public static void add(File file) throws IOException {
    //如果上面的path是一个目录
    if (file.isDirectory()) {
    //拿到目录中的文件放到File[]中
    File[] files = file.listFiles();
    //遍历目录中的文件
    for (File fs : files) {
    //如果还有目录,就再调用这个方法(递归)
    if (fs.isDirectory()) add(fs);
    //如果是文件并且以.jpg或.png结尾的
    if (fs.isFile() && (fs.getName().endsWith(".jpg")) || fs.getName().endsWith(".png")) {
    //静态变量+1
    ++num;
    //取得文件名
    String name = fs.getName();
    //下面的代码主要是为了给生成的新文件命名
    //截取文件名,从开头截取到.的位置(不包含.)
    String bname = name.substring(0, name.indexOf("."));
    String mname = "test";
    //截取文件名,从.的位置截取到最后(包含.)
    String lname = name.substring(name.lastIndexOf("."));
    //拼接为一个新名字
    String newname = bname + mname + lname;
    //System.out.println(newname);
    //读取文件
    BufferedImage i = ImageIO.read(fs);
    //开启画笔
    Graphics2D g = i.createGraphics();
    //去锯齿,让文字变得光滑
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);
    g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    //设置字体 宋体 加粗 大小为30
    Font font = new Font("宋体", Font.BOLD, 30);
    //使用这个字体
    g.setFont(font);
    //水印文字的内容
    String src = "版权所有:2647871520";
    //坐标(水印文字加进去的位置)
    int x = 15;
    int y = 30;
    //设置颜色为红色
    g.setColor(Color.RED);
    //把水印文字写到图片中
    g.drawString(src, x, y);
    //关闭画笔
    g.dispose();
    //生成新文件到指定目录,重新命名
    ImageIO.write(i, fs.getName().substring(name.lastIndexOf(".") + 1), new FileOutputStream(url + num + newname));

    }
    }
    }
    ////如果上面的path是一个文件
    else if (file.isFile()) {
    ++num;
    BufferedImage i = ImageIO.read(file);
    Graphics2D g = i.createGraphics();
    String name = file.getName();
    //System.out.println(name);
    String bname = name.substring(0, name.indexOf("."));
    String mname = "test";
    String lname = name.substring(name.lastIndexOf("."));
    String newname = bname + mname + lname;
    //System.out.println(newname);
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT);
    g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    Font font = new Font("宋体", Font.BOLD, 30);
    g.setFont(font);
    String src = "版权所有:2647871520";
    int x = 10;
    int y = 10;
    g.setColor(Color.RED);
    g.drawString(src, x, y);
    g.dispose();
    ImageIO.write(i, "jpg", new FileOutputStream(url + num + newname));
    }
    }
    }
  • 相关阅读:
    财务系统重复付款case分析及解决方案
    MySQL体系结构
    安装篇九:安装wordpress(5.4版本)
    安装篇八:配置 Nginx 使其支持 MySQL 应用
    安装篇七:配置 Nginx 使其支持 PHP 应用
    安装篇六:安装PHP(7.2.29版本)
    安装篇五:安装MySQL(5.6.38版本)
    安装篇四:安装NGINX(1.4.0版本)
    安装篇三:系统初始化设置
    安装篇二:CentOS 6.9系统安装
  • 原文地址:https://www.cnblogs.com/liuyunche/p/14314238.html
Copyright © 2011-2022 走看看