最近做了生成电子名片的公众号,分享一下关于图片和文字拼接的功能。

直接上代码:

Controller

@RequestMapping(value="/getImgPosterLogin")
public void getImgPosterLogin (HttpServletRequest request , HttpServletResponse response  , CardModel cardModel , String openId ,String imgName) throws ServletException, IOException {
User user = (User)request.getSession().getAttribute("user");
if (user == null && openId !=null) {
//先通过openId查询用户是不是在数据库中存在
user = userService.getUserInfoByOpenId(openId);
if (user == null) {
JSONObject jsonObject = WeChatClientUtil.doGetJson("http://ldsfirstwechat.imwork.net/accessToken");
//根据用户openId  和 accessToken 来获取用户信息
String url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token="+jsonObject.getString("access_token")+"&openid="+openId+"&lang=zh_CN";
System.out.println(url +"   url123456 ");
JSONObject userInfo = WeChatClientUtil.doGetJson(url);
System.out.println(userInfo +" userInfo");
//插入用户
userService.insert(new User(null, null, openId, new Date(), new Date(), userInfo.getString("nickname"), userInfo.getLong("sex"), userInfo.getString("province"), userInfo.getString("city"), userInfo.getString("country"), userInfo.getString("headimgurl"), userInfo.getString("unionid"), false , null));
user = userService.getUserInfoByOpenId(openId);
request.getSession().setAttribute("user", user);
} else {
request.getSession().setAttribute("user", user);
}

if(cardModel.getModelCard().equals("2018032101.jpg")) {
ImageHandleHelper.overlapImageOne(cardModel,response);
}else if(cardModel.getModelCard().equals("2018032102.jpg")) {
ImageHandleHelper.overlapImagetwo(cardModel,response);
}else if(cardModel.getModelCard().equals("2018032103.jpg")) {
ImageHandleHelper.overlapImagethree(cardModel,response);
}else if(cardModel.getModelCard().equals("2018032104.jpg")) {
ImageHandleHelper.overlapImagefour(cardModel,response);
}

}

工具类

    public static void overlapImageOne(CardModel cardModel , HttpServletResponse response) {
try {
BufferedImage big = ImageIO.read(new URL("网络链接"));
       BufferedImage small = ImageIO.read(new URL("网络链接"+cardModel.getErweima().substring(0, cardModel.getErweima().indexOf("?"))));
       
       Graphics2D g = big.createGraphics();
       int x = 49;
       int y = 233;
       //drawImage(文件,文件左上角x坐标,文件左上角y坐标,文件width,文件height,observer)
       //输出字体抗锯齿
       g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);  
       g.drawImage(small, x, y, 169, 167, null);
       //添加文字
       //最后一个参数用来设置字体的大小  
           Font f = new Font("黑体",Font.BOLD,30);  
           Color mycolor = Color.BLACK;//new Color(0, 0, 255);  
           g.setColor(mycolor);  
           g.setFont(f);  
           //10,20 表示这段文字在图片上的位置(x,y) .第一个是你设置的内容。  
           g.drawString(cardModel.getName(),275,279);  
       String address = "*************************";
       f = new Font("黑体",Font.BOLD,16);
       g.setFont(f);
       g.drawString(cardModel.getCompany()+cardModel.getJob(),375,279);  
           if(cardModel.getPhone1() == null || cardModel.getPhone1().equals("")) {
            cardModel.setPhone1(cardModel.getPhone2());
            cardModel.setPhone2("");
           }
           if(cardModel.getPhone2() == null || cardModel.getPhone2().equals("")) {
            cardModel.setPhone2("");
           }
           g.drawString(cardModel.getPhone1(),304,321);
           g.drawString(cardModel.getPhone2(),420,321);  
           g.drawString(cardModel.getEmail(),304,350);  
           g.drawString(address,304,382);  
       g.dispose();
       //返回图片
       response.setContentType("image/jpg");
OutputStream os = response.getOutputStream();
ImageIO.write(big, "jpg", os);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

}

这样就直接返回图片到页面上了 页面上可以吧 img的 src改为上面这个方法的路径,就可以直接将拼接好的路径返回了,

可以按照自己想放的位置来指定 x,y的坐标

File output = new File("c:\\image\\"+name+".jpg");

ImageIO.write(big, "JPG", output);

这样可以将图片保存在本地 你想保存的目录

BufferedImage big = ImageIO.read(new File(backgroundFile)); //这个可以读取本地图片,上面的代码是读取的网络图片。

java图片与文字拼接相关推荐

  1. Java图片加文字水印

    Java图片加文字水印 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.I ...

  2. Java 图片添加文字或者logo水印(附代码) | Java工具类

    目录 前言 环境依赖 代码 总结 前言 本文提供java工具类,给图片添加文字或者logo图片的水印效果. 环境依赖 工具库maven依赖添加 <dependency><groupI ...

  3. java图片添加水印文字

    jAVA图片中添加文字水印(铺满整个图片) package com.zhuozhengsoft.mark; import java.awt.AlphaComposite; import java.aw ...

  4. java 图片添加水印(文字水印+图片水印)

    一.图片水印(水印文件覆盖到源文件上) /*** @param buffImg 源文件(BufferedImage)* @param waterImg 水印文件(BufferedImage)* @pa ...

  5. java图片加文字水印_JAVA实现图片的修改,添加文字水印效果

    JAVA实现图片的修改,添加文字水印效果,根据文字内容生成图片,下面是具体的代码,以及测试方法: 实现类: package JavaMoImage; import javax.p_w_picpathi ...

  6. 【工作经验分享】java图片转文字

    前言 又到一年金九银十之际. Java作为目前用户最多,使用范围最广的软件开发技术之一. Java的技术体系主要由支撑Java程序运行的虚拟机,提供各开发领域接口支持的Java,Java编程语言及许多 ...

  7. java图片转文字,秀出天际!

    京东一面凉经 object的方法,7大方法 synchronized方法讲解 synchronized方法实现原理 volatile关键字的原理 锁的分类 偏向锁讲解 NoClassDefFoundE ...

  8. java图片去掉文字_关于java:Java-添加删除PPT文本和图片水印

    在前文中,我介绍过如何给PDF文档增加文本和图片水印.本文将具体解说如何增加.删除PPT文本和图片水印. 此次代码示例所用到的工具是Free Spire.Presentation for Java.F ...

  9. java图片去掉文字,Java 移除html,图片 链接转文字

    ", "\r\n"); // 替换为换行 content = content.replaceAll(" ", "\r\n"); S ...

最新文章

  1. openresty 前端开发序
  2. BZOJ4671: 异或图
  3. 决定神经网络迭代次数的两个因素
  4. (转)[Android] 利用 ant 脚本修改项目包名
  5. 使用VNC访问Linux桌面
  6. 三篇论文之bigtable
  7. 优酷电视剧爬虫代码实现一:下载解析视频网站页面(3)补充知识点:htmlcleaner使用案例...
  8. java文件读取的几个操作-1
  9. cmd echo写入shell_为什么说Shell脚本就是最好的教程和笔记呢?
  10. Codeforces 145E Lucky Queries 线段树
  11. 理科生考计算机音乐制作专业,理科生学电子音乐-怎么学习电音制作?
  12. hibernate还有人用吗
  13. Unity 粒子特效 不受Time.deltaTime影响
  14. java ws_java / javaw / javaws之间的区别
  15. 毕业论文中期报告PPT模板
  16. angularUI之accordion的用法
  17. 彩色图rgb转换成灰色图
  18. 一文带你搞懂Vue中的Excel导入导出
  19. matlab求解常微分方程的实验,实验五__用matlab求解常微分方程
  20. 使用GeoServer发布Shapfile数据

热门文章

  1. JSR --- JAVA Java Specification Requests 意思是Java 规范提案
  2. oracle 字段重命名大表,Oracle表字段的增、刪、改、表的重命名及主鍵的增、刪、改...
  3. 神奇的 Excel 插件:Azure DevOps 插件
  4. 1000瓶无色无味的药水,其中有一瓶毒药,10只小白鼠拿过来做实验
  5. 【Medical physics】X线、CT和MRI的区别
  6. init_modue和finit_module
  7. C++ free指针时的异常
  8. 网站文章更新频率对SEO影响大吗?
  9. 买笔记本电脑的注意事项
  10. 数据分析常用分析方法