• 根据图片名添加时间水印


    添加文字水印代码

    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 srcImg    --
         *                  目标图片
         * @param fontName  --
         *                  字体名
         * @param fontStyle --
         *                  字体样式
         * @param color     --
         *                  字体颜色
         * @param fontSize  --
         *                  字体大小
         * @param x         --
         *                  偏移量
         * @param y
         */
    
        public static void pressText(String pressText, String srcImg, String targetImg,
                                     String fontName, int fontStyle, Color color, int fontSizePercent, int x,
                                     int y) {
            try {
                File _file = new File(srcImg);
                Image src = ImageIO.read(_file);
                BufferedImage image2 = ImageIO.read(_file);
                int width = src.getWidth(null);
                int height = src.getHeight(null);
                if (width > height) {
                    BufferedImage image = new BufferedImage(width, height,
                            ((BufferedImage) src).getType());
                }
                BufferedImage image = new BufferedImage(width, height,
                        ((BufferedImage) src).getType());
                Graphics2D g = image.createGraphics();
                g.drawImage(src, 0, 0, width, height, null);
                g.setColor(color);
                int fontSize = 0;
                if (width < height) {
                    fontSize = width / 100 * fontSizePercent;
    
                } else {
                    fontSize = height / 100 * fontSizePercent;
                }
                g.setFont(new Font(fontName, fontStyle, fontSize));
    
                g.drawString(pressText, width - fontSize * x, height - fontSize * y);
                g.dispose();
                FileOutputStream out = new FileOutputStream(targetImg);
                JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                encoder.encode(image);
                out.close();
            } catch (Exception e) {
                System.out.println(e);
            }
        }
    
        public static void main(String[] args) throws ParseException {        String srcPath = "F:\照片\iphone\";
            String targetPath = "F:\照片\iphone水印\";
            File rootDir = new File(srcPath);
            String[] list = rootDir.list();
            for (String fileName : list) {
                String filePath = srcPath + fileName;
                String pressText = generatePressText(fileName);
                String targetPathFile = targetPath + fileName;
    
                pressText(pressText, filePath,
                        targetPathFile,
                        "Times New Roman", Font.PLAIN, Color.ORANGE, 5, 8, 1);
                System.out.println(fileName);
            }
    
        }
    
        // 根据图片名进行调整规则
        private static String generatePressText(String fileName) throws ParseException {
            DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HHmmSS");
            DateFormat format2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
            Date date = format1.parse(fileName);
            return format2.format(date);
        }
    }   

    运行结果

  • 相关阅读:
    一步一步教你使用AgileEAS.NET基础类库进行应用开发基础篇演示ORM中的查询
    一步一步教你使用AgileEAS.NET基础类库进行应用开发WinForm应用篇实例一个模块(商品字典)
    DotNET企业架构应用实践基于接口开发介绍以及应用场景和案例
    DotNET企业架构应用实践实例架构设计中的业务分层提取独立的业务层
    如何去除Visual SourceSafe绑定信息
    死机也新潮,Longhorn出现致命红屏?
    推荐一套MFC界面控件(BCGControlBar Library v6.50)
    从键盘磨损度看一个人(绝对精典搞笑)(转载)
    加速你的开发工具【代码片断库插件】
    空间插值方法汇总(转载但已记不得出处了)
  • 原文地址:https://www.cnblogs.com/hdulzt/p/14090469.html
Copyright © 2020-2023  润新知