Java - 生成健康证图片,各种模板图片

58 篇文章 3 订阅
订阅专栏
该博客介绍了一个Java程序,用于根据给定数据动态生成健康证的图片。程序通过读取模板图片,填充个人信息,如年龄、姓名、性别等,并添加头像和印章,最终保存为新的健康证图片。此方法可以有效降低手动上传健康证的工作量。
摘要由CSDN通过智能技术生成

业务中涉及到了在线的健康证预览,但是如果将每个健康证拍照上传预览的话工作量比较高,因此需要通过代码来动态的生成健康证图片,每次预览直接访问图片。

package cn.com.baidu.card.util;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;

/**
 * 生成健康证图片
 * @类 名 : CreateImage
 * @功能描述 : TODO
 * @作者信息 : 崔胖子
 * @创建时间 : 2017-9-10上午12:21:09
 * @修改备注 :
 */
public class CreateImage {

    /** 模板图片路径 */
    private static String TEMPLATEPAHT = "";

    /** 模板印章路径 */
    private static String TEMPLATEPATHYZ = "";

    static {
        // 初始化健康证图片模板路径
        TEMPLATEPAHT = "D:\\健康证.png";
        // 初始化健康证图片模板印章路径
        TEMPLATEPATHYZ = "D:\\健康证章.png";
    }

    public static void main(String[] args) {
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("age", 25);
        map.put("no", "20170910001");
        map.put("name", "崔胖子");
        map.put("gender", "男");
        map.put("begin", "2017年9月10日");
        map.put("project", "小食品");
        map.put("idCode", "123456789012345678");
        createImage(map, "D:\\CBC.png");
    }

    /**
     * @Title : createImage
     * @功能描述 : TODO
     * @设定文件 : @param map 需要填充的数据集合
     * @设定文件 : @param path 文件输出的路径+文件名称
     * @设定文件 : @return
     * @返回类型 : String 文件路径
     * @throws :
     */
    public static void createImage(Map<String,Object> map, String path) {
        try{
            // 加载模板图片
            BufferedImage image = ImageIO.read(new File(TEMPLATEPAHT));
            // 得到图片操作对象
            Graphics2D graphics = image.createGraphics();
            //消除文字锯齿
            graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
            //消除图片锯齿
            graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            // 设置文字的颜色为黑色
            graphics.setColor(Color.black);
            // 设置文字的字体,大小
            graphics.setFont(new Font("宋体", Font.BOLD, 60));
            // 健康证印章
            File files = new File(TEMPLATEPATHYZ);
            // 年龄
            graphics.drawString(map.get("age") == null ? "" : map.get("age").toString(), 1620, 580);
            // 编号
            String no =  map.get("no") == null ? "" : map.get("no").toString();
            graphics.drawString("编号:"+ no, 135, 1130);
            // 姓名
            graphics.drawString(map.get("name") == null ? "" : map.get("name").toString(), 1170, 400);
            // 性别
            graphics.drawString(map.get("gender") == null ? "" : map.get("gender").toString(), 1170, 580);
            // 有效期开始时间
            graphics.drawString(map.get("begin") == null ? "" : map.get("begin").toString(), 1170, 930);
            // 经营项目
            graphics.drawString(map.get("project") == null ? "" : map.get("project").toString(), 1170, 750);
            // 身份证号
            graphics.drawString(map.get("idCode") == null ? "" : map.get("idCode").toString(), 1170, 1110);
            // 创建头像地址
            String paths = map.get("facePhoto") == null ? "D:\\健康证默认头像.png": map.get("facePhoto").toString();
            File file = new File(paths);
            // 对头像进行裁剪
            Image img = thumbnail(file, 500, 690);
            // 将头像放入模板中
            graphics.drawImage(img, 130, 130, null);
            // 对印章进行裁剪
            Image imgs = thumbnail(files, 895, 639);
            // 将印章放入模板中
            graphics.drawImage(imgs, 440, 440, null);
            // 将健康证图片存储到本地
            createImage(path, image);
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 将image对象存储到本地
     * @Title : createImage
     * @功能描述 : TODO
     * @设定文件 : @param fileLocation 本地路径
     * @设定文件 : @param image 图片对象
     * @返回类型 : void
     * @throws :
     */
    private static void createImage(String fileLocation, BufferedImage image) {
        try {
            String formatName = fileLocation.substring(fileLocation.lastIndexOf(".") + 1);
            ImageIO.write(image, formatName , new File(fileLocation));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 图片压缩-按照固定宽高原图压缩
     * @Title : thumbnail
     * @功能描述 : TODO
     * @设定文件 : @param img 本地图片地址
     * @设定文件 : @param width 图片宽度
     * @设定文件 : @param height 图片高度
     * @设定文件 : @return
     * @设定文件 : @throws IOException
     * @返回类型 : Image
     * @throws :
     */
    public static Image thumbnail(File img, int width, int height) throws IOException {
        BufferedImage BI = ImageIO.read(img);
        Image image = BI.getScaledInstance(width, height, Image.SCALE_SMOOTH);
        BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics g = tag.getGraphics();
        g.setColor(Color.RED);
        g.drawImage(image, 0, 0, null);
        g.dispose();
        return image;
    }

}

默认头像样式

健康证底板样式

生成后的效果

 

 

美团 生成器问题
suv1234的博客
06-03 2009
可能是没吃饭就去面试了,一塌糊涂,好尴尬,生成器竟然卡壳了···,问的随机数生成器生成1、2、3的概率相等,都为1/3,问如何设计生成器,使得生成1、2、3的概率为0.5、0.3、0.2. 先整体总结一下之前的生成器的问题 1给定一个随机生成器fun(),生成0和1的概率分别为0.5,那么如何构造一个生成0和1的概率分别是0.3和0.7的随机生成器? 可以考虑将其生成的数字0,1进行组合
1秒生成证件照——小米云证件照微信小程序
HeHeHe
01-21 8427
我们经常会遇到需要证件照的场合,去照相馆照相麻烦,自己用手机或电脑拍照,修图也麻烦,有没有更简单快捷的方法呢?使用小米云证件照微信小程序可以快速的生成需要的证件照。小米云证件照可以生成一寸、二寸、小一寸、小二寸照片,如果你不知道要生成多大的照片,可以点选教师资格证、健康证、身份证等证件按钮,系统已经预设好了照片的大小。 01 如何打开小米云证件照小程序 打开微信,下拉聊天列表,搜索小米证件照,点击小米云证件照。 02 制作证件照 下面以制作一寸证件照为例,演示操作过程。
从业人员体检健康证管理制作 20071230-ASP源码.zip
12-16
ASP源码,压缩包解压密码:www.cqlsoft.com
网上搞笑证件在线制作源码
12-13
网上流行的在线制作搞笑证件程序,共40多套证件模板,程序代码为ASP,操作简单方便。
appIcon一键生成app图片
08-15
appIcon一键生成app各种icon类型图片
健康证 health certificate
张彤的专栏
09-09 1413
杭州市西湖区卫生局门口,雷闯兴奋地做出了V字手势。作为乙肝病毒携带者的他拿到全省乃至全国第一张从事食品行业的健康证。雷闯把这一天称为“值得纪念的日子”,他说:“这是争取乙肝病毒携带者权益的重大胜利。”请看新华社的报道:A university graduate who fought discrimination against Hepatitis B virus (HBV) carrier
java生成证书
xituzi的专栏
05-08 2305
import java.io.BufferedInputStream;  import java.io.ByteArrayInputStream;  import java.io.ByteArrayOutputStream;  import java.io.IOException;  import java.io.InputStream;  import java.io.OutputStream;
在线生成app附件
08-12
http://blog.csdn.net/asas5250/article/details/52190257 文章附件
[GCT论文详解]Graph Convolutional Transformer学习电子健康记录EHR的图结构+github页面 合集
人工智能曾小健
02-26 969
电子健康记录 (EHR) 的有效建模正迅速成为学术界和工业界的一个重要话题。最近的一项研究表明,使用电子病历数据的图形结构(例如诊断和治疗之间的关系)可提高预测任务(如心力衰竭预测)的性能。然而,EHR 数据并不总是包含完整的结构信息。而且,当涉及到索赔数据时,结构信息一开始就完全不可用。在这种情况下,我们是否还能做得比仅仅将 EHR 数据视为扁平结构的特征包更好?在本文中,我们研究了在对 EHR 数据执行监督预测任务时联合学习 EHR 隐藏结构的可能性。
ccf 201509-3 模板生成系统
人生如梦,浮华一瞬间的专栏
12-03 3002
问题描述   成成最近在搭建一个网站,其中一些页面的部分内容来自数据库中不同的数据记录,但是页面的基本结构是相同的。例如,对于展示用户信息的页面,当用户为 Tom 时,网页的源代码是   而当用户为 Jerry 时,网页的源代码是   这样的例子在包含动态内容的网站中还有很多。为了简化生成网页的工作,成成觉得他需要引入一套模板生成系统。   模板是包含特殊标记的文本。成成用
java根据模版生成图片的word文档
01-28
将doc模版另存为xml格式 附上freemarker标签
电子名片生成工具在线更新版
04-08
此为电子名片生成工具的升级版,可以通过服务器在线获取应用更新,实现大量实用功能
DLL生成器
10-26
简单好用大家自行下载!
hcert-spec:电子健康证书规范
04-16
电子健康证明书 该存储库包含有关对电子健康证书(HCERT)进行编码和签名的建议,以作为电子卫生保健当局和其他利益相关方认为合适的适应和采用的候选人。 规格 。 概述 要求和设计原则 在设计电子健康证书(HCERT)时使用了以下要求和原则: 电子健康证书应由持有人携带,并且必须具有脱机安全验证的能力(使用强大且经过验证的密码原语)。 示例:带有机器可读内容的签名数据。 使用尽可能紧凑的编码,同时确保使用光学手段进行可靠的解码。 示例:CBOR与放气压缩和QR编码相结合。 使用现有的,经过验证的和现代的开放标准,并在可能的情况下为所有常见平台和操作环境提供运行代码,以限制实施工作并最大程度地降低互操作性问题的风险。 示例:CBOR Web令牌(CWT)。 当不存在现有标准时,请根据现有机制定义和测试新机制,并确保存在正在运行的代码。 示例:每个新Internet草案的Base
在线生成器,网站地图在线生成工具
10-09
通过本网站地图生成工具,您可快速、方便地生成符合最新标准sitemap xml 0.9规范的网站地图,让搜索引擎对您网站的更快、更完整地进行索引,为您进行网站推广带来极大的方便。
Java 后端开发实践 - 项目模板(16 步)
weixin_70730532的博客
05-18 2167
在我的工作中,我从零开始搭建了不少软件项目,其中包含了基础代码框架和持续集成基础设施等,这些内容在敏捷开发中通常被称为“第0个迭代”要做的事情。但是,当项目运行了一段时间之后再来反观,我总会发现一些不足的地方,要么测试分类没有分好,要么基本的编码架子没有考虑周全。 另外,我在工作中也会接触到很多既有项目,公司内部和外部的都有,多数项目的编码实践我都是不满意的。比如,我曾经新加入一个项目的时候,前前后后请教了3位同事才把该项目在本地运行起来;又比如在另一项目中,我发现前端请求对应的Java类命名规范...
Helm-Chart-Java 自定义常用模版
最新发布
04-17
每个文件都遵循Helm的模板语言,可能使用Go模板语法来动态生成Kubernetes对象。通过调整这些模板参数,你可以根据具体需求定制Java微服务的部署配置。 总结来说,这个Helm图表为Java微服务提供了全面的Kubernetes...
Java毕业设计-基于SpringBoot的在线投稿系统源码.zip
05-30
4. **Thymeleaf或Freemarker**: 这两个是常用的Java模板引擎,用于生成HTML视图。在这个系统中,它们可能会被用来渲染前端页面,将后台数据动态展示给用户。 5. **安全控制**: Spring Security是Spring生态中的一个...
免费在线 Logo生成器
tyq0319的专栏
03-21 5088
网上发现的一款很不错的logo生成器,做个标记,方便日后使用。 Logo Type Maker Logo Type Maker是一个实用方便的免费在线 Logo生成器。只要输入文字(暂不支持中文),Logo Type Maker 就会随机产生出 12 种不同样式的 Logo,点击Refresh按钮可显示新一组logo,可放大预览,直到遇见满意的logo为止。有白、黑、透明三种l
java 模板生成word表格插入图片
09-06
Java中,可以使用Apache POI库来生成Word文档并插入表格和图片。下面是一个简单的示例代码: 首先,需要引入Apache POI库的依赖: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> ``` 然后,可以使用以下代码生成一个Word文件并插入表格和图片: ```java import org.apache.poi.util.IOUtils; import org.apache.poi.xwpf.usermodel.*; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; public class WordGenerator { public static void main(String[] args) { try { // 创建一个新的Word文档 XWPFDocument document = new XWPFDocument(); // 创建一个表格 XWPFTable table = document.createTable(3, 3); // 往表格中添加内容 table.getRow(0).getCell(0).setText("姓名"); table.getRow(0).getCell(1).setText("性别"); table.getRow(0).getCell(2).setText("年龄"); table.getRow(1).getCell(0).setText("张三"); table.getRow(1).getCell(1).setText("男"); table.getRow(1).getCell(2).setText("20"); table.getRow(2).getCell(0).setText("李四"); table.getRow(2).getCell(1).setText("女"); table.getRow(2).getCell(2).setText("22"); // 插入一张图片 InputStream imageStream = new FileInputStream("path/to/image.jpg"); XWPFParagraph paragraph = document.createParagraph(); XWPFRun run = paragraph.createRun(); run.addPicture(imageStream, XWPFDocument.PICTURE_TYPE_JPEG, "image.jpg", Units.toEMU(200), Units.toEMU(200)); imageStream.close(); // 保存Word文档 FileOutputStream out = new FileOutputStream("path/to/output.docx"); document.write(out); out.close(); System.out.println("Word文档生成成功!"); } catch (Exception e) { e.printStackTrace(); } } } ``` 需要注意的是,上述代码中的图片路径和输出路径需要根据实际情况修改。另外,还需要根据实际需求来调整表格的行数、列数以及单元格内容。
写文章

热门文章

  • Java - 生成健康证图片,各种模板图片 32087
  • Java将图片转为Base64 12515
  • JSON字符串解析报错com.alibaba.fastjson.JSONException: syntax error, position at xxx 11484
  • Windows10视频文件没有预览图的解决办法 10245
  • Arduino中断 9996

分类专栏

  • js 16篇
  • java 58篇
  • html 9篇
  • mysql 17篇
  • groovy 1篇
  • arduino 6篇
  • arduibo
  • shiro 1篇
  • image 1篇
  • 小程序 3篇
  • Nginx 1篇
  • Tomcat 2篇
  • jvm 2篇
  • vs2017 1篇

最新评论

  • Java - 生成健康证图片,各种模板图片

    2401_87371928: 怎么用的啊?也不说使用方法,

  • Arduino控制TM1637共阳四位数码管

    sfls78: 我用的也是这个例子,接线也是如此,就是数码管不亮,什么原因?

  • Java - 生成健康证图片,各种模板图片

    2301_80566200: 怎么弄啊

  • Java - 生成健康证图片,各种模板图片

    duchchch: 怎么弄呀

  • Html页面动态生成创建Json对象

    会飞的哈士奇: 少什么呢

最新文章

  • layui监听table表单的多选框
  • Java办公文档开发工具 , 操作Office以及各种类型互转 Spire.
  • Java将Excel转为图片
2024年13篇
2023年42篇
2022年58篇
2021年36篇
2020年15篇
2019年4篇
2018年10篇
2017年3篇

目录

目录

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

外国毕业证样本制作公司杭州制作国外留学文凭定制北京办海外学位南京定做海外留学生学位证代做西宁办国外留学学位证办理北京制作国外文凭毕业证代办长春办理海外成绩单定制上海定做海外留学生学位证定制福州代办国外学位定制南宁做海外学位制作西宁代做海外学历代做贵阳国外留学毕业证代做西宁补办国外文凭毕业证制作沈阳海外学位证书代做郑州做国外本科毕业证合肥补办海外博士毕业证长春制作国外留学毕业证补办乌鲁木齐办理海外文凭毕业证补办广州代办国外学位制作乌鲁木齐代办海外学历石家庄补办海外学位证书制作沈阳代办国外证书定制石家庄办理国外文凭定制乌鲁木齐做海外留学学位证补办郑州海外成绩单代办西安制作国外留学毕业证济南制作海外文凭证书办理昆明代办海外留学生学位证制作太原做海外文凭证书办理珠海补办国外学历文凭代做长春国外文凭毕业证定做淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

外国毕业证样本制作公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化