java_图片添加水印

java_图片添加水印

	 /**
     * 图片添加水印
     * @param sourceImg 源文件
     * @param targetImg 输入文件
     * @param jwd
     * @param types
     * @return
     * @throws IOException
     */
    public static String markImgMark(String sourceImg, String targetImg,String jwd,Integer types) throws IOException {
        String result = "添加图片水印出错";
        File file = new File(sourceImg);
        Image img = ImageIO.read(file);
        int width = img.getWidth(null);//水印宽度
        int height = img.getHeight(null);//水印高
        BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D g = bi.createGraphics();
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        g.drawImage(img.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null);
        String type = "";
        //字体
        Font font = new Font("Serif", Font.BOLD, 30);
       // g.setBackground(Color.WHITE);
        g.fillRect(0, 0, 100, 0);
        g.setPaint(Color.red);
        g.setFont(font);

        FontRenderContext context = g.getFontRenderContext();
        Rectangle2D bounds = font.getStringBounds(s, context);
        double x = (width - bounds.getWidth()) / 2;
        double y = (height - bounds.getHeight()) / 2;
        double ascent = -bounds.getY();
        double baseY = y + ascent;
        //todo 水印内容 ---> 绘制字符串
        String s = "经纬度: "+jwd;
        String sj = "时间:" +DateUtils.getTime(); 
        g.drawString(s, (int) 20, (int) 80);
        g.drawString(sj, (int) 20, (int)130);
        g.drawString(type, (int) 20, (int)180);
        File sf = new File(targetImg);
        ImageIO.write(bi, "jpg", sf); // 保存图片
        System.out.println("添加图片水印成功"+DateUtils.getTime());
        return result;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值