精华内容
下载资源
问答
  • 主要为大家详细介绍了java实现图片加水印效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Java实现图片添加水印

    2020-11-30 14:41:16
    * 添加文本水印 * @author navy * */ public class TextWaterMarkServiceImpl implements IWaterMarkService{ @Override public String waterMark(File pic, String picFileName, String uploadPath, String ...

    /**
     * 添加文本水印
     * @author navy
     *
     */
    public class TextWaterMarkServiceImpl implements IWaterMarkService{
        @Override
        public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
            FileOutputStream fos=null; //将内存中的图片写出到磁盘
            String newFileName = ""; //添加水印后的图片
            
            try {
                Image image=ImageIO.read(pic); //获取图片信息
                int width=image.getWidth(null);//获取图片的大小
                int height=image.getHeight(null);//获取图片的大小
                
                //1.创建图片缓存对象   高度、宽度和图片颜色
                BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
                
                //2.创建Java绘图工具对象
                Graphics2D gp=bufferedImage.createGraphics();
                
                /*
                 * 3.使用绘图工具对象将原图绘制到缓存图片对象
                 * 绘制图片  要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
                 * 绘制图片的高度和宽度
                 */
                gp.drawImage(image,0,0,width,height,null);
                
                //4.添加文字水印
                //(1)设置显示文本的样式
                gp.setFont(new Font(FONT_NAME,FONT_STYLE,FONT_SIZE));
                //(2)设置显示文本的颜色
                gp.setColor(FONT_COLOR);
                
                //(3)计算文本的显示位置
                int x=width-FONT_SIZE*getTextLength(MARK_TEXT);
                int y=height-FONT_SIZE;
                
                //(4)设置透明度
                gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
                
                //(5)绘制文本水印
                gp.drawString(MARK_TEXT,x,y+FONT_SIZE);
                
                //(6)释放工具
                gp.dispose();
                
                
                //5.创建图像编码工具类,对图片对象进行编码处理  JPEGImageEncoder
                newFileName="text_"+picFileName;
                fos=new FileOutputStream(realUploadPath+"/"+newFileName);
                JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
                //6.使用图像编码工具类,输出缓存图像到目标图片文件
                jie.encode(bufferedImage);
                
            } catch (IOException e) {
                e.printStackTrace();
            } finally{
                //7.关闭流
                if(fos!=null){
                    try {
                        fos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return uploadPath+"/"+newFileName;
        }
        
        /**
         * 计算文本的长度
         * 如果是中文则就是文本长度值,如果是英文或数字,则是一半其长度的一半
         * 两个英文的长度跟一个汉字的长度一样
         * @param text:要计算的文本
         * @return
         */
        public int getTextLength(String text){
            int length=text.length(); 
            String temp;
            for(int i=0;i<text.length();i++){
                temp=String.valueOf(text.charAt(i));
                if(temp.getBytes().length>1){ //如果是汉字,则加1
                    length++;
                }
            }
            length=length%2==0?length/2:length/2+1;
            return length;
        } 

    }

     

    /**
     * 添加多文本水印
     * @author navy
     *
     */
    public class TextMoreWaterMarkServiceImpl implements IWaterMarkService{
        @Override
        public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
            FileOutputStream fos=null; //将内存中的图片写出到磁盘
            String newFileName = ""; //添加水印后的图片
            
            try {
                Image image=ImageIO.read(pic); //获取图片信息
                int width=image.getWidth(null);//获取图片的大小
                int height=image.getHeight(null);//获取图片的大小
                
                //1.创建图片缓存对象   高度、宽度和图片颜色
                BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
                
                //2.创建Java绘图工具对象
                Graphics2D gp=bufferedImage.createGraphics();
                
                /*
                 * 3.使用绘图工具对象将原图绘制到缓存图片对象
                 * 绘制图片  要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
                 * 绘制图片的高度和宽度
                 */
                gp.drawImage(image,0,0,width,height,null);
                
                //4.添加文字水印
                //(1)设置显示文本的样式
                gp.setFont(new Font(FONT_NAME,FONT_STYLE,FONT_SIZE));
                //(2)设置显示文本的颜色
                gp.setColor(FONT_COLOR);
                
                //(3)计算文本的大小
                int textWidth=FONT_SIZE*getTextLength(MARK_TEXT);
                int textHeight=FONT_SIZE;
                
                //(4)设置透明度
                gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
                
                //(5)旋转图片  将角度转换为弧度  然后是旋转的中心
                gp.rotate(Math.toRadians(30),bufferedImage.getWidth()/2,bufferedImage.getHeight()/2);
                
                //(6)设置绘制坐标的起始值
                int x=-width/2; //向左移动一半
                int y=-height/2; //向上移动一半
                
                //(7)循环绘制文本水印,此时绘制的区域会增大,我们这里直接扩大一倍
                while(x<width*1.5){
                    y=-height/2; //y坐标要重置,以保证从上往下的添加
                    while(y<height*1.5){
                        gp.drawString(MARK_TEXT,x,y);//添加水印
                        y+=textHeight+200;
                    }
                    x+=textWidth+200;  //200为文字与文字之间的间距
                }
                
                
                //(8)释放工具
                gp.dispose();
                
                
                //5.创建图像编码工具类,对图片对象进行编码处理  JPEGImageEncoder
                newFileName="textmore_"+picFileName;
                fos=new FileOutputStream(realUploadPath+"/"+newFileName);
                JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
                //6.使用图像编码工具类,输出缓存图像到目标图片文件
                jie.encode(bufferedImage);
                
            } catch (IOException e) {
                e.printStackTrace();
            } finally{
                //7.关闭流
                if(fos!=null){
                    try {
                        fos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return uploadPath+"/"+newFileName;
        }
        
        /**
         * 计算文本的长度
         * 如果是中文则就是文本长度值,如果是英文或数字,则是一半其长度的一半
         * 两个英文的长度跟一个汉字的长度一样
         * @param text:要计算的文本
         * @return
         */
        public int getTextLength(String text){
            int length=text.length(); 
            String temp;
            for(int i=0;i<text.length();i++){
                temp=String.valueOf(text.charAt(i));
                if(temp.getBytes().length>1){ //如果是汉字,则加1
                    length++;
                }
            }
            length=length%2==0?length/2:length/2+1;
            return length;
        } 

    }
     

    /**
     * 添加图片水印
     * @author navy
     */
    public class ImageWaterMarkServiceImpl implements IWaterMarkService{
        @Override
        public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
            FileOutputStream fos=null; //将内存中的图片写出到磁盘
            String newFileName = ""; //添加水印后的图片
            
            try {
                Image image=ImageIO.read(pic); //获取图片信息
                int width=image.getWidth(null);//获取图片的大小
                int height=image.getHeight(null);//获取图片的大小
                
                //1.创建图片缓存对象   高度、宽度和图片颜色
                BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
                
                //2.创建Java绘图工具对象
                Graphics2D gp=bufferedImage.createGraphics();
                
                /*
                 * 3.使用绘图工具对象将原图绘制到缓存图片对象
                 * 绘制图片  要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
                 * 绘制图片的高度和宽度
                 */
                gp.drawImage(image,0,0,width,height,null);
                
                //4.添加图片水印
                //(1)获取水印图片路径
                String logoPath=realUploadPath+"/"+LOGO;
                
                //(2)创建文件对象,去指向这个文件
                File logo=new File(logoPath);
                
                //(3)使用Image这个类去操作这个文件
                Image imageLogo=ImageIO.read(logo);
                
                //(4)计算文本的显示位置
                int x=width-imageLogo.getWidth(null);
                int y=height-imageLogo.getHeight(null);
                
                //(5)设置透明度
                gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
                
                //(6)绘制文本水印
                gp.drawImage(imageLogo,x,y,null);
                
                //(7)释放工具
                gp.dispose();
                
                //5.创建图像编码工具类,对图片对象进行编码处理  JPEGImageEncoder
                newFileName="logo_"+picFileName;
                fos=new FileOutputStream(realUploadPath+"/"+newFileName);
                JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
                //6.使用图像编码工具类,输出缓存图像到目标图片文件
                jie.encode(bufferedImage);
            } catch (IOException e) {
                e.printStackTrace();
            } finally{
                //7.关闭流
                if(fos!=null){
                    try {
                        fos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return uploadPath+"/"+newFileName;
        }
    }
     

     

    /**
     * 添加图片水印
     * @author navy
     */
    public class ImageMoreWaterMarkServiceImpl implements IWaterMarkService{
        @Override
        public String waterMark(File pic, String picFileName, String uploadPath, String realUploadPath) {
            FileOutputStream fos=null; //将内存中的图片写出到磁盘
            String newFileName = ""; //添加水印后的图片
            
            try {
                Image image=ImageIO.read(pic); //获取图片信息
                int width=image.getWidth(null);//获取图片的大小
                int height=image.getHeight(null);//获取图片的大小
                
                //1.创建图片缓存对象   高度、宽度和图片颜色
                BufferedImage bufferedImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
                
                //2.创建Java绘图工具对象
                Graphics2D gp=bufferedImage.createGraphics();
                
                /*
                 * 3.使用绘图工具对象将原图绘制到缓存图片对象
                 * 绘制图片  要绘制的图片对象 绘制的开始坐标(跟原图一样,所以都是0)
                 * 绘制图片的高度和宽度
                 */
                gp.drawImage(image,0,0,width,height,null);
                
                //4.添加图片水印
                //(1)获取水印图片路径
                String logoPath=realUploadPath+"/"+LOGO;
                
                //(2)创建文件对象,去指向这个文件
                File logo=new File(logoPath);
                
                //(3)使用Image这个类去操作这个文件
                Image imageLogo=ImageIO.read(logo);
                
                //(4)计算图片水印的大小
                int imageWidth=imageLogo.getWidth(null);
                int imageHeight=imageLogo.getHeight(null);
                
                //(5)设置透明度
                gp.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,ALPHA));
                
                //(6)旋转图片  将角度转换为弧度  然后是旋转的中心
                gp.rotate(Math.toRadians(30),bufferedImage.getWidth()/2,bufferedImage.getHeight()/2);
                
                //(7)设置绘制坐标的起始值
                int x=-width/2; //向左移动一半
                int y=-height/2; //向上移动一半
                
                //(7)循环绘制文本水印,此时绘制的区域会增大,我们这里直接扩大一倍
                while(x<width*1.5){
                    y=-height/2; //y坐标要重置,以保证从上往下的添加
                    while(y<height*1.5){
                        gp.drawImage(imageLogo,x,y,null);
                        y+=imageWidth+300;
                    }
                    x+=imageHeight+300;  //300为文字与文字之间的间距
                }
                
                //(8)释放工具
                gp.dispose();
                
                //5.创建图像编码工具类,对图片对象进行编码处理  JPEGImageEncoder
                newFileName="logomore_"+picFileName;
                fos=new FileOutputStream(realUploadPath+"/"+newFileName);
                JPEGImageEncoder jie=JPEGCodec.createJPEGEncoder(fos);
                //6.使用图像编码工具类,输出缓存图像到目标图片文件
                jie.encode(bufferedImage);
            } catch (IOException e) {
                e.printStackTrace();
            } finally{
                //7.关闭流
                if(fos!=null){
                    try {
                        fos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return uploadPath+"/"+newFileName;
        }
    }
     

    展开全文
  • java实现图片添加水印

    2019-07-15 17:06:03
    转载至大神博客https://blog.csdn.net/top_code/article/details/71756529
    展开全文
  • java 实现图片加水印

    2021-06-17 16:03:39
    java实现图片加水印 /** * @param args */ public static void main(String[] args) { //需要加水印的图片 String srcImgPath = "D:\\photo\\test.jpeg"; String logoText = "XXXX科技有限公司"; String ...

    java实现图片加水印

    /**
         * @param args
         */
        public static void main(String[] args) {
        	//需要加水印的图片
            String srcImgPath = "D:\\photo\\test.jpeg";
            String logoText = "XXXX科技有限公司";
            String targerPath = "D:\\photo\\test\\test.jpeg";
    
            String targerPath2 = "D:\\photo\\test\\test01.jpeg";
    
            // 给图片添加水印
    //        markByText(logoText, srcImgPath, targerPath);
    
            // 给图片添加水印,水印旋转6
            markByText(logoText, srcImgPath, targerPath2, 6);
        }
    
        /**
         * 给图片添加水印
         * @param logoText
         * @param srcImgPath
         * @param targerPath
         */
        public static void markByText(String logoText, String srcImgPath,
                                      String targerPath) {
            markByText(logoText, srcImgPath, targerPath, null);
        }
    
        /**
         * 给图片添加水印、可设置水印的旋转角度
         * @param logoText
         * @param srcImgPath
         * @param targerPath
         * @param degree
         */
        public static void markByText(String logoText, String srcImgPath,
                                      String targerPath, Integer degree) {
            // 主图片的路径
            InputStream is = null;
            OutputStream os = null;
            try {
                Image srcImg = ImageIO.read(new File(srcImgPath));
    
                BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),
                        srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);
    
                // 得到画笔对象
                // Graphics g= buffImg.getGraphics();
                Graphics2D g = buffImg.createGraphics();
    
                // 设置对线段的锯齿状边缘处理
                g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                        RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    
                g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg
                        .getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);
    
                if (null != degree) {
                    // 设置水印旋转
                    g.rotate(Math.toRadians(degree),
                            (double) buffImg.getWidth() / 2, (double) buffImg
                                    .getHeight() / 2);
                }
    
                // 设置颜色透明度
                g.setColor(new Color(155, 155, 155, 155));
    
                // 设置 Font
                g.setFont(new Font("宋体", Font.BOLD, 80));
    
                float alpha = 0.5f;
                g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
                        alpha));
    
                // 第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) .
                g.drawString(logoText, 260, 160);
    
                g.dispose();
    
                os = new FileOutputStream(targerPath);
    
                // 生成图片
                ImageIO.write(buffImg, "JPG", os);
    
                System.out.println("图片完成添加文字印章。。。。。。");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (null != is)
                        is.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                try {
                    if (null != os)
                        os.close();
    
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    
    展开全文
  • java实现图片加水印.txt》里面装的都是给图片加水印的代码和讲解,很好资源哦
  • java实现图片加水印

    2017-05-25 17:04:00
    2、我们要在原来的图片加水印,就相当于要在纸上画画。。。所以我们的画纸应该是原图的一的副本,我们我们需要得到副本并用容器容乃他,  3、画画需要画笔对吧,我们要得到画副本的笔,当然比肯定有粗细。。。...

    首先。涉及到文件就要用到文件操作,但我们这是操作图片 
    1、我们首先需要一个容器来存放图片ps:图片原来在磁盘(File)—-》内存(image) 
    2、我们要在原来的图片上加水印,就相当于要在纸上画画。。。所以我们的画纸应该是原图的一的副本,我们我们需要得到副本并用容器容乃他, 
    3、画画需要画笔对吧,我们要得到画副本的笔,当然比肯定有粗细。。。参数设置。。 
    4、如果就开始画了。。。首先的找位置。。。我们的图片就像桌面是二维图形,就用起始坐标,还是按部就班就从(0,0)开始呢

    5、然后万一我们想歇着画了呢,java有旋转画布的方法 
    6、开始画画了。。。。给定位置。。。给定内容。。下笔了。。。 
    7、花完了。。是不是就要收拾现场了。。。。收拾好笔,将内存的image输出到磁盘文件。。。。 
    上代码

    package com.funi.test;
    
    import java.awt.AlphaComposite;
    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics2D;
    import java.awt.Image;
    import java.awt.RenderingHints;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    import javax.imageio.ImageIO;
    import javax.swing.ImageIcon;
    
    /*******************************************************************************
     * Description: 图片水印工具类 
     * @author zengshunyao
     * @version 1.0
     */public class ImageRemarkUtil {// 水印透明度private static float alpha = 0.5f;
        // 水印横向位置private static int positionWidth = 150;
        // 水印纵向位置private static int positionHeight = 300;
        // 水印文字字体private static Font font = new Font("宋体", Font.BOLD, 72);
        // 水印文字颜色private static Color color = Color.red;
    
        /**
         * 
         * @param alpha
         *            水印透明度
         * @param positionWidth
         *            水印横向位置
         * @param positionHeight
         *            水印纵向位置
         * @param font
         *            水印文字字体
         * @param color
         *            水印文字颜色
         */public static void setImageMarkOptions(float alpha, int positionWidth,
                int positionHeight, Font font, Color color) {
            if (alpha != 0.0f)
                ImageRemarkUtil.alpha = alpha;
            if (positionWidth != 0)
                ImageRemarkUtil.positionWidth = positionWidth;
            if (positionHeight != 0)
                ImageRemarkUtil.positionHeight = positionHeight;
            if (font != null)
                ImageRemarkUtil.font = font;
            if (color != null)
                ImageRemarkUtil.color = color;
        }
    
        /**
         * 给图片添加水印图片
         * 
         * @param iconPath
         *            水印图片路径
         * @param srcImgPath
         *            源图片路径
         * @param targerPath
         *            目标图片路径
         */public static void markImageByIcon(String iconPath, String srcImgPath,
                String targerPath) {
            markImageByIcon(iconPath, srcImgPath, targerPath, null);
        }
    
        /**
         * 给图片添加水印图片、可设置水印图片旋转角度
         * 
         * @param iconPath
         *            水印图片路径
         * @param srcImgPath
         *            源图片路径
         * @param targerPath
         *            目标图片路径
         * @param degree
         *            水印图片旋转角度
         */public static void markImageByIcon(String iconPath, String srcImgPath,
                String targerPath, Integer degree) {
            OutputStream os = null;
            try {
    
                Image srcImg = ImageIO.read(new File(srcImgPath));
    
                BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),
                        srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);
    
                // 1、得到画笔对象
                Graphics2D g = buffImg.createGraphics();
    
                // 2、设置对线段的锯齿状边缘处理
                g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                        RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    
                g.drawImage(
                        srcImg.getScaledInstance(srcImg.getWidth(null),
                                srcImg.getHeight(null), Image.SCALE_SMOOTH), 0, 0,
                        null);
                // 3、设置水印旋转if (null != degree) {
                    g.rotate(Math.toRadians(degree),
                            (double) buffImg.getWidth() / 2,
                            (double) buffImg.getHeight() / 2);
                }
    
                // 4、水印图片的路径 水印图片一般为gif或者png的,这样可设置透明度
                ImageIcon imgIcon = new ImageIcon(iconPath);
    
                // 5、得到Image对象。
                Image img = imgIcon.getImage();
    
                g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
                        alpha));
    
                // 6、水印图片的位置
                g.drawImage(img, positionWidth, positionHeight, null);
                g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
                // 7、释放资源
                g.dispose();
    
                // 8、生成图片
                os = new FileOutputStream(targerPath);
                ImageIO.write(buffImg, "JPG", os);
    
                System.out.println("图片完成添加水印图片");
    
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (null != os)
                        os.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    
        /**
         * 给图片添加水印文字
         * 
         * @param logoText
         *            水印文字
         * @param srcImgPath
         *            源图片路径
         * @param targerPath
         *            目标图片路径
         */public static void markImageByText(String logoText, String srcImgPath,
                String targerPath) {
            markImageByText(logoText, srcImgPath, targerPath, null);
        }
    
        /**
         * 给图片添加水印文字、可设置水印文字的旋转角度
         * 
         * @param logoText
         * @param srcImgPath
         * @param targerPath
         * @param degree
         */public static void markImageByText(String logoText, String srcImgPath,
                String targerPath, Integer degree) {
    
            InputStream is = null;
            OutputStream os = null;
            try {
                // 1、源图片
                Image srcImg = ImageIO.read(new File(srcImgPath));
                BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),
                        srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);
    
                // 2、得到画笔对象
                Graphics2D g = buffImg.createGraphics();
                // 3、设置对线段的锯齿状边缘处理
                g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                        RenderingHints.VALUE_INTERPOLATION_BILINEAR);
                g.drawImage(
                        srcImg.getScaledInstance(srcImg.getWidth(null),
                                srcImg.getHeight(null), Image.SCALE_SMOOTH), 0, 0,
                        null);
                // 4、设置水印旋转if (null != degree) {
                    g.rotate(Math.toRadians(degree),
                            (double) buffImg.getWidth() / 2,
                            (double) buffImg.getHeight() / 2);
                }
                // 5、设置水印文字颜色
                g.setColor(color);
                // 6、设置水印文字Font
                g.setFont(font);
                // 7、设置水印文字透明度
                g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
                        alpha));
                // 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y)
                g.drawString(logoText, positionWidth, positionHeight);
                // 9、释放资源
                g.dispose();
                // 10、生成图片
                os = new FileOutputStream(targerPath);
                ImageIO.write(buffImg, "JPG", os);
    
                System.out.println("图片完成添加水印文字");
    
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (null != is)
                        is.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                try {
                    if (null != os)
                        os.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static void main(String[] args) {
            String srcImgPath = "d:/1.jpg";
            String logoText = "复 印 无 效";
            String iconPath = "d:/2.jpg";
    
            String targerTextPath = "d:/qie_text.jpg";
            String targerTextPath2 = "d:/qie_text_rotate.jpg";
    
            String targerIconPath = "d:/qie_icon.jpg";
            String targerIconPath2 = "d:/qie_icon_rotate.jpg";
    
            System.out.println("给图片添加水印文字开始...");
            // 给图片添加水印文字
            markImageByText(logoText, srcImgPath, targerTextPath);
            // 给图片添加水印文字,水印文字旋转-45
            markImageByText(logoText, srcImgPath, targerTextPath2, -45);
            System.out.println("给图片添加水印文字结束...");
    
            System.out.println("给图片添加水印图片开始...");
            setImageMarkOptions(0.3f, 1, 1, null, null);
            // 给图片添加水印图片
            markImageByIcon(iconPath, srcImgPath, targerIconPath);
            // 给图片添加水印图片,水印图片旋转-45
            markImageByIcon(iconPath, srcImgPath, targerIconPath2, -45);
            System.out.println("给图片添加水印图片结束...");
    
        }
    
    }

     

    转载于:https://my.oschina.net/githubhty/blog/909073

    展开全文
  • JAVA实现图片加水印及Base64图片字符串加水印 可将根据不同需求选择场景一,场景二来实现家水印操作,个人感觉比我上一遍文章base64字符串加水印 >实在 场景一: 涉及上送过来的不直接是图片,而是Base64字符串,则先需...
  • 项目中遇到要在图片添加水印文字,类似于像生日贺卡那种推送,就是有一张底图,然后我们需要动态替换掉上面名字,性别,部门啥的给公司人员推送一个生日祝福,一开始使用富文本和一些html转图片的工具来做,发现...
  • 1.水印图片(正水印)截图: 2、斜水印 3.具体实现代码如下: package test; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt....
  • 目前已经可以实现java图片进行水印处理,但是问题是,我需要绘制的水印不止一个,位置也是不一样的,如何实现在同一张图片上面绘制多个不同位置的水印,跪谢,感激不尽。
  • java实现图片添加水印

    万次阅读 多人点赞 2015-03-30 21:41:56
    我喜欢先有思路再说实现,大家都知道java可以画图的,但效率不是很高...2、我们要在原来的图片加水印,就相当于要在纸上画画。。。所以我们的画纸应该是原图的一的副本,我们我们需要得到副本并用容器容乃他, 3、画
  • Java实现图片添加水印图片和水印文字.docJava实现图片添加水印图片和水印文字.docJava实现图片添加水印图片和水印文字.docJava实现图片添加水印图片和水印文字.doc
  • Java实现图片添加水印

    万次阅读 2019-06-11 14:51:21
    使用Java图片添加水印 根据需求给图片添加水印,直接上代码 /** * 给图片添加水印 */ public void addWaterMark() { Color color = new Color(255, 200, 0, 118); // 水印颜色 Font font = new Font(...
  • java图片添加水印

    2015-12-14 15:23:26
    java图片添加水印,网站开发过程中可能需要对上传的图片添加属于本网站的水印,这是一个工具类,能实现添加文字水印和添加图片水印。
  • java 实现图片添加水印

    千次阅读 2014-09-24 13:10:56
    原图如下: java 实现图片添加水印
  • Java实现图片水印

    2018-10-24 10:13:37
    参考:Java实现图片水印 代码参考:https://gitee.com/Yenn-2017_admin/JAVATuPianShuiYin 1、JAVA图片水印实现思路 2、项目案例: 框架---》实现方式---》结果演示 3、包含: 图片添加单个文字水印 图片添加...
  • Java实现图片添加水印详细教程二

    千次阅读 2017-12-23 16:09:02
    Java实现图片添加水印详细教程二
  • java实现图片添加水印

    千次阅读 2016-02-25 11:47:49
    这个水印功能是看的慕课网的视频自己跟着学的,视频连接如下:http://www.imooc.com/learn/482...先说说实现水印功能的思路:1、创建图片缓存对象2、创建绘图工具对象(有点类似于画布)3、使用绘图工具对象将原图绘制...
  • java实现图片加水印

    2009-06-06 15:47:13
    java程序对图片加水印效果,比较简单 把需要加水印的图片替代原来的图片就可以了,在代码里头可以修改水印的字
  • 主要介绍了Java实现图片添加图片水印,文字水印及马赛克的方法,涉及java针对图片的读取、水印添加、马赛克设置等相关操作技巧,需要的朋友可以参考下
  • java实现图片水印添加

    2009-05-27 16:51:39
    图片的一些加工,不用工具而简单的代码就可以实现图片水印添加/

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,819
精华内容 2,327
关键字:

java实现图片加水印

java 订阅