java图片与文字拼接
最近做了生成电子名片的公众号,分享一下关于图片和文字拼接的功能。
直接上代码:
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图片与文字拼接相关推荐
- Java图片加文字水印
Java图片加文字水印 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.I ...
- Java 图片添加文字或者logo水印(附代码) | Java工具类
目录 前言 环境依赖 代码 总结 前言 本文提供java工具类,给图片添加文字或者logo图片的水印效果. 环境依赖 工具库maven依赖添加 <dependency><groupI ...
- java图片添加水印文字
jAVA图片中添加文字水印(铺满整个图片) package com.zhuozhengsoft.mark; import java.awt.AlphaComposite; import java.aw ...
- java 图片添加水印(文字水印+图片水印)
一.图片水印(水印文件覆盖到源文件上) /*** @param buffImg 源文件(BufferedImage)* @param waterImg 水印文件(BufferedImage)* @pa ...
- java图片加文字水印_JAVA实现图片的修改,添加文字水印效果
JAVA实现图片的修改,添加文字水印效果,根据文字内容生成图片,下面是具体的代码,以及测试方法: 实现类: package JavaMoImage; import javax.p_w_picpathi ...
- 【工作经验分享】java图片转文字
前言 又到一年金九银十之际. Java作为目前用户最多,使用范围最广的软件开发技术之一. Java的技术体系主要由支撑Java程序运行的虚拟机,提供各开发领域接口支持的Java,Java编程语言及许多 ...
- java图片转文字,秀出天际!
京东一面凉经 object的方法,7大方法 synchronized方法讲解 synchronized方法实现原理 volatile关键字的原理 锁的分类 偏向锁讲解 NoClassDefFoundE ...
- java图片去掉文字_关于java:Java-添加删除PPT文本和图片水印
在前文中,我介绍过如何给PDF文档增加文本和图片水印.本文将具体解说如何增加.删除PPT文本和图片水印. 此次代码示例所用到的工具是Free Spire.Presentation for Java.F ...
- java图片去掉文字,Java 移除html,图片 链接转文字
", "\r\n"); // 替换为换行 content = content.replaceAll(" ", "\r\n"); S ...
最新文章
- openresty 前端开发序
- BZOJ4671: 异或图
- 决定神经网络迭代次数的两个因素
- (转)[Android] 利用 ant 脚本修改项目包名
- 使用VNC访问Linux桌面
- 三篇论文之bigtable
- 优酷电视剧爬虫代码实现一:下载解析视频网站页面(3)补充知识点:htmlcleaner使用案例...
- java文件读取的几个操作-1
- cmd echo写入shell_为什么说Shell脚本就是最好的教程和笔记呢?
- Codeforces 145E Lucky Queries 线段树
- 理科生考计算机音乐制作专业,理科生学电子音乐-怎么学习电音制作?
- hibernate还有人用吗
- Unity 粒子特效 不受Time.deltaTime影响
- java ws_java / javaw / javaws之间的区别
- 毕业论文中期报告PPT模板
- angularUI之accordion的用法
- 彩色图rgb转换成灰色图
- 一文带你搞懂Vue中的Excel导入导出
- matlab求解常微分方程的实验,实验五__用matlab求解常微分方程
- 使用GeoServer发布Shapfile数据
热门文章
- JSR --- JAVA Java Specification Requests 意思是Java 规范提案
- oracle 字段重命名大表,Oracle表字段的增、刪、改、表的重命名及主鍵的增、刪、改...
- 神奇的 Excel 插件:Azure DevOps 插件
- 1000瓶无色无味的药水,其中有一瓶毒药,10只小白鼠拿过来做实验
- 【Medical physics】X线、CT和MRI的区别
- init_modue和finit_module
- C++ free指针时的异常
- 网站文章更新频率对SEO影响大吗?
- 买笔记本电脑的注意事项
- 数据分析常用分析方法