精华内容
下载资源
问答
  • java 图片添加水印

    2018-07-16 15:54:39
    java 图片添加水印 图片叠加文字类 图片生成方法,如果需要在已有的图片叠加文字
  • Java图片加水印

    千次阅读 2014-12-04 08:35:45
    java图片加水印

    code

    import java.awt.Font;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    
    import com.sun.image.codec.jpeg.JPEGCodec;
    import com.sun.image.codec.jpeg.JPEGImageEncoder;
    
    
    
    
    import javax.imageio.ImageIO;
    
    public class WaterMark{
    	public static void pressImage(String dst,String src,int x,int y){
    		try{
    			File f=new File(src);
    			Image img=ImageIO.read(f);
    			
    			int w=img.getWidth(null);
    			int h=img.getHeight(null);
    			BufferedImage bimg=new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
    			
    			Graphics g=bimg.getGraphics();
    			g.drawImage(img, 0, 0, w, h, null);
    			
    			File f1=new File(dst);
    			Image img1=ImageIO.read(f1);
    			int w1=img1.getWidth(null);
    			int h1=img1.getHeight(null);
    			
    			g.drawImage(img1, w-w1-x, h-h1-y, w1, h1, null);
    			g.dispose();
    
    			FileOutputStream out=new FileOutputStream(dst);
    			JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
    			encoder.encode(bimg);
    			out.close();
    			
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    	}
    	
    	public static void pressText(String pressText, String targetImg,String fontName,
    			int fontStyle,int color,int fontSize,int x,int y){
    		try{
    			File f=new File(targetImg);
    			Image img=ImageIO.read(f);
    			int w=img.getWidth(null);
    			int h=img.getHeight(null);
    			BufferedImage bimg=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
    			Graphics g=bimg.getGraphics();
    			g.drawImage(img, 0, 0, w, h, null);
    			
    			g.setFont(new Font(fontName,fontStyle,fontSize));
    			g.drawString(pressText, w-fontSize-x, h-fontSize/2-y);
    			g.dispose();
    			
    			FileOutputStream out=new FileOutputStream(targetImg);
    			JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
    			encoder.encode(bimg);
    			out.close();
    			
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    	}
    	
    	public static void main(String[] args){
    		pressImage("1.jpg","2.jpg",200,200);
    		pressText("真的好想你","3.jpg","宋体",Font.BOLD,0,20,200,200);
    	}
    }


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

    千次阅读 2019-09-12 18:02:57
    最近开发一款卡片app,但上传到服务器的卡片中有一种是图片相同,只是文字不同,为了减少UI工作量,通过图片加水印的方式在后台将文字添加图片上,并将合成的图片上传到服务器,如下是整个实现过程: 首先是工具类...

    最近开发一款卡片app,但上传到服务器的卡片中有一种是图片相同,只是文字不同,为了减少UI工作量,通过图片加水印的方式在后台将文字添加到图片上,并将合成的图片上传到服务器,如下是整个实现过程:
    首先是工具类:

    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Graphics2D;
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    
    import javax.imageio.ImageIO;
    
    public class WaterMarkUtils {
    
    	 /**
         * @param srcImgPath 源图片路径
         * @param tarImgPath 保存的图片路径
         * @param waterMarkContent 水印内容
         */
        public static boolean addWaterMark(String srcImgPath, String tarImgPath, String waterMarkContent) {
            try {
                // 读取原图片信息
                File srcImgFile = new File(srcImgPath);//得到文件
                Image srcImg = ImageIO.read(srcImgFile);//文件转化为图片
                int srcImgWidth = srcImg.getWidth(null);//获取图片的宽
                int srcImgHeight = srcImg.getHeight(null);//获取图片的高
                // 加水印
                BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);
                Graphics2D g = bufImg.createGraphics();
                g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
                Color color = Color.white;
                g.setColor(color); 	//根据图片的背景设置水印颜色
                Font font = new Font("黑体", Font.PLAIN, 32);
                g.setFont(font);              //设置字体
                // 一行14个位置,超出部分进行换行
                int page = (int) Math.ceil((double)waterMarkContent.length()/14);
        		for (int i = 0; i < page; i++) {
        			String sub = null;
        			if ((i+1)*14 < waterMarkContent.length()) {
        				sub = waterMarkContent.substring(i*14, (i+1)*14);
        			} else {
        				sub = waterMarkContent.substring(i*14, waterMarkContent.length());
        			}
        			g.drawString(sub, 70, 340+i*48); // 画文字
        		}
                g.dispose();  
                // 输出图片  
                FileOutputStream outImgStream = new FileOutputStream(tarImgPath);  
                ImageIO.write(bufImg, "png", outImgStream);
                outImgStream.flush();  
                outImgStream.close();  
    
            } catch (Exception e) {
            	e.printStackTrace();
            	return false;
            }
            System.out.println("添加水印完成");  
            return true;
        }
        
        public static void main(String[] args) {
            String srcImgPath="C:/Users/18702/Desktop/素材/cba/1.png"; //源图片地址
            String tarImgPath="C:/Users/18702/Desktop/素材/cba/2.png"; //待存储的地址
            String waterMarkContent="今天是个好日子啊今天又是充满希望的一天!今天是个好日子啊今天又是充满希望的一天!今天是个好日子啊今天又是充满希望的一天!";  //水印内容
            addWaterMark(srcImgPath, tarImgPath, waterMarkContent);
        }
    }
    

    如WaterMarkUtils 所示,只需传三个参数,源图片地址、待存储的地址、文字内容,代码中有详细的注释。
    使用时直接调用addWaterMark接口就可以了,注意,如果要将代码部署到linux服务器,你需要确认服务器有添加文字需要的字体。之前一直卡在这一步,本地能正常添加文字,部署到服务器后只显示英语或数字,但中文却不显示了,其解决方案如下:
    1.

    fc-list                   ----------检查所有已有的字体
    

    在这里插入图片描述
    如果显示上图所示,则
    2.

    yum -y install fontconfig				----------安装字体库
    

    3.打开c盘下的Windows/Fonts目录,将需要的字体复制并上传到服务器/usr/share/fonts/zh_CN目录下,如果没有该目录,可以用mkdir命令进行创建
    4.

    chmod 766 msyh.ttf		   			----------修改字体权限
    

    5.建立字体缓存

    mkfontscale
    
    mkfontdir
    
    fc-cache -fv
    
    1. 重启tomcat服务器
      最后展示效果图:
      在这里插入图片描述
      在这里插入图片描述
    展开全文
  • JAVA图片添加水印

    2019-09-02 14:42:38
    //图片防爬加水印import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.geometry.Positions; import java....
    话不多说,直接上代码.
    
    //图片防爬加水印import java.awt.image.BufferedImage;
    import javax.imageio.ImageIO;
    import net.coobird.thumbnailator.Thumbnails;
    import net.coobird.thumbnailator.geometry.Positions;
    import java.net.URL;
    import org.apache.commons.lang3.StringEscapeUtils;
    
    @RequestMapping(value = "/img")
    @ResponseBody
    public static void getImageFromNetByUrl(String strUrl,HttpServletResponse response) {
        String static_server_path=SysConstants.getAddrress ( "static_server_path" ); //水印图片路径
        if (null != strUrl) {
            try {
                //特殊字符转义
                strUrl=StringEscapeUtils.unescapeHtml4(strUrl); //图片路径
            
                BufferedImage bimg=ImageIO.read ( new URL ( strUrl ) );
                    int width=bimg.getWidth ();
                    int height=bimg.getHeight ();
                    URL url=new URL ( strUrl );
                        Thumbnails.of ( url )
                                .imageType ( BufferedImage.TYPE_INT_ARGB )
                                .size ( width , height ) 
                                .watermark ( Positions.CENTER , ImageIO.read ( new URL ( static_server_path + "/img/watermark/route.png" ) ) , 0.5f )
                                .outputQuality ( 0.5f )//水印透明度
                                .toOutputStream ( response.getOutputStream () );
            } catch (Exception e) {
                e.printStackTrace ();
            }
        }
    }
    展开全文
  • Java图片添加水印

    2018-06-27 22:02:32
    图片增加文本水印,根据图片大小自动设置水印字体大小 Java增加水印代码 /** * Created by march on 2018/6/27. * 图片工具类 */ import java.awt.*; import java.awt.image.BufferedImage; import java....

    更新点

    考拉博客

    • 文章发布增加首页背景图片
    • 图片增加文本水印,根据图片大小自动设置水印字体大小

    Java增加水印代码

    /**
     * Created by march on 2018/6/27.
     * 图片工具类
     */
    
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileOutputStream;
    import javax.imageio.ImageIO;
    import java.awt.Color;
    import com.sun.image.codec.jpeg.JPEGCodec;
    import com.sun.image.codec.jpeg.JPEGImageEncoder;
    
    public class ImageUtils {
        public static int MIN_FONT_SIZE = 15; //最小字体大小
        public static int REDUCE_SCALE = 20;  //文字虽小比例,根据图片大小进行动态设置字体大小
        public static String MARK_TEXT = "http://kooola.com";
        public static String FONT_NAME = "华为楷体";
        public static int FONT_STYLE = 5;
        private static Color TEXT_COLOR = Color.GRAY;
    
    
        /**
         *
    //   * @param text  文本
         * @param img 目标图标path
    //   * @param fontName 字体名称
    //   * @param fontStyle 字体样式
         */
        public static void makeWatermark(String img){
            int fontSize = 40;
    
    
            File file = new File(img);
            Image src = null;
            try{
                src = ImageIO.read(file);
            }catch (Exception e){
                e.printStackTrace();
            }
            int width = src.getWidth(null);
            int height = src.getHeight(null);
    
            int size = width > height ? height : width;
            //根据图片大小动态设置字体大小
            fontSize = size / REDUCE_SCALE < MIN_FONT_SIZE ? MIN_FONT_SIZE : size / REDUCE_SCALE;
    
    
            // x,y 为文字开始的相对位置
    //        int x = width - fontSize * text.length();
            int x = 0;  //x 设置到左下角开头
            int y = height - fontSize;
    
    
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            Graphics graphics = image.createGraphics();
            graphics.drawImage(src, 0, 0, width, height, null);
            graphics.setFont(new Font(FONT_NAME, FONT_STYLE, fontSize));
            graphics.setColor(TEXT_COLOR);
            graphics.drawString(MARK_TEXT, x, y);
    
            graphics.dispose();
            FileOutputStream fileOutputStream = null;
            try{
                fileOutputStream = new FileOutputStream(img);
            }catch (Exception e){
                e.printStackTrace();
            }
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fileOutputStream);
            try{
                encoder.encode(image);
            }catch (Exception e){
                e.printStackTrace();
            }
            try {
                fileOutputStream.close();
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        public static void main(String[] args){
            makeWatermark("/Users/march/Downloads/t9gg6570quh5koe6fqkdil2sqm.jpg");
        }
    }
    

    效果

    Java图片水印

    展开全文
  • java 图片加水印实例代码,需要的朋友可以参考一下
  • Java 图片添加水印

    2019-03-24 17:27:28
    图片添加水印效果: 创建工具类:ImageMarkLogoByIcon 类,直接调用ImgWatermark方法传入要加水印的图片位置和加完水印图片存储位置,样式透明度啥自己设置一下 package com.toolUtils; import javax....
  • JAVA图片加水印

    2016-06-27 17:44:58
    很好的logo水印 utils
  • 主要介绍了java图片添加水印实例代码,感兴趣的小伙伴们可以参考一下
  • java图片加水印

    2018-05-24 14:55:35
        参考链接:...一: 添加文字水印:   /** * Embeds a textual watermark over a source image to produce ...
  • java 图片加水印

    2017-11-17 11:36:12
    工具类import javax.imageio....import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.i
  • 摘要:Java源码,图形操作,图片加水印 一个Java写的图片添加水印的模块源代码,貌似以前发过,现在重新再发一个,每个创作者的思路都不一样,因此看看别人写的代码可以开拓一下思路,Java图片加水印源码分享给大家。
  • Java图片添加水印工具

    2019-03-19 17:23:13
    Java图片添加水印工具 废话少说,直接上代码: import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image....
  • Java 图片加水印

    千次阅读 2013-01-14 17:44:28
    private void newFolder(String folderPath) { String filePath = folderPath; filePath = filePath.toString(); //指定路径的建文件夹 ... java.io.File myFilePath = new java.io.File(filePath); tr
  • Java图片加水印,支持旋转和透明度设置.rar
  • java图片加水印工具类

    2013-03-12 14:37:41
    java实现图片加水印 工具类!!!以后不用手动敲代码了

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,824
精华内容 3,529
关键字:

java图片添加水印

java 订阅