图片工具类,将一些文字通过java输出到图片上,然后在前端以图片形式展示就显稍微高端一些哈。

废话少说,上图

PictureUtil.java

package cn.hx.as.util;import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class PictureUtil {private static void createImage(String fileLocation, BufferedImage image) {try {FileOutputStream fos = new FileOutputStream(fileLocation);BufferedOutputStream bos = new BufferedOutputStream(fos);JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);encoder.encode(image);bos.close();fos.close();} catch (Exception e) {e.printStackTrace();}}//    // public static void graphicsGeneration(String path, PolicyBean policyBean)// {//// int imageWidth = 1000;// 图片的宽度//// int imageHeight = 1000;// 图片的高度//// BufferedImage image = new BufferedImage(imageWidth, imageHeight,// BufferedImage.TYPE_INT_RGB);// Graphics graphics = image.getGraphics();// graphics.setColor(Color.white);// graphics.fillRect(0, 0, imageWidth, imageHeight);// graphics.setColor(Color.ORANGE);// graphics.setFont(new Font("宋体", Font.BOLD, 20));//// // PolicyPersonDto policyPersonDto = policyBean.getPolicyPersonDto();// // PolicyProductDto policyProductDto = policyBean.getPolicyProductDto();//// int num = 50;// graphics.drawString("手机号      : " + policyPersonDto.getMobile(), 50,// num);// num += 50;// graphics.drawString("登陆密码    : " + policyPersonDto.getPassword(), 50,// num);// num += 50;// graphics.drawString("身份证号    : " + policyPersonDto.getIdentityCard(), 50,// num);// num += 50;// graphics.drawString("姓名        : " + policyPersonDto.getUserName(), 50,// num);// num += 50;// graphics.drawString("所在地区    : " + policyPersonDto.getArea(), 50, num);// num += 50;// graphics.drawString("常住地址    : " + policyPersonDto.getAddress(), 50,// num);// num += 50;// graphics.drawString("微信号      : " + policyPersonDto.getWechatNo(), 50,// num);// num += 50;// graphics.drawString("QQ号        : " + policyPersonDto.getQq(), 50, num);// num += 50;// graphics.drawString("Email       : " + policyPersonDto.getEmail(), 50,// num);// num += 50;// graphics.drawString("品牌        : " + policyProductDto.getBrand(), 50,// num);// num += 50;// graphics.drawString("型号        : " + policyProductDto.getModel(), 50,// num);// num += 50;// graphics.drawString("商品编号    : " + policyProductDto.getProductId(), 50,// num);// num += 50;// graphics.drawString("购买日期    : " + policyProductDto.getPurchaseDate(),// 50, num);// num += 50;// graphics.drawString("购买价格    : " + policyProductDto.getPurchasePrice(),// 50, num);// num += 50;// graphics.drawString("购买途径    : " + policyProductDto.getPurchaseWay(), 50,// num);// num += 50;// graphics.drawString("报修电话    : " + policyProductDto.getWarrantyPhone(),// 50, num);// num += 50;// graphics.drawString("延保单位    : " +// policyProductDto.getExtendedWarrantyUnit(), 50, num);// num += 50;// graphics.drawString("延保电话    : " +// policyProductDto.getExtendedWarrantyPhone(), 50, num);// num += 50;// graphics.drawString("发票编号    : " + policyProductDto.getInvoiceNo(), 50,// num);//// createImage(path, image);// }public static void main(String[] args) {List<Map> list = new ArrayList<Map>();Map<String, String> mapTitle1 = new HashMap<String, String>();mapTitle1.put("title", "使用人信息");list.add(mapTitle1);Map<String, String> map1 = new HashMap<String, String>();map1.put("客户姓名", "张三");map1.put("手机号", "123123");map1.put("身份证号", "230302198811241234");list.add(map1);Map<String, String> map2 = new HashMap<String, String>();map2.put("送货地址", "北京市海淀区知春路113号银网中心B座1009室");list.add(map2);Map<String, String> map3 = new HashMap<String, String>();map3.put("微信号码", "123123");map3.put("qq号码", "123123");map3.put("电子邮箱", "gaop@haierubic.com");list.add(map3);Map<String, String> mapTitle2 = new HashMap<String, String>();mapTitle2.put("title", "购买人信息");list.add(mapTitle2);Map<String, String> map4 = new HashMap<String, String>();map4.put("姓名", "张三朋友");map4.put("手机号", "15612341122");map4.put("身份证号", "230302198811241234");list.add(map4);Map<String, String> mapTitle3 = new HashMap<String, String>();mapTitle3.put("title", "产品信息");list.add(mapTitle3);Map<String, String> map5 = new HashMap<String, String>();map5.put("产品型号", "ALI88");map5.put("凭证类型", "发票");map5.put("购买日期", "2014-12-02");list.add(map5);Map<String, String> map6 = new HashMap<String, String>();map6.put("购买商城", "ALI88");map6.put("凭证编号", "发票");list.add(map6);int imageWidth = 1200;// 图片的宽度int imageHeight = 1000;// 图片的高度BufferedImage image = new BufferedImage(imageWidth, imageHeight,BufferedImage.TYPE_INT_RGB);Graphics graphics = image.getGraphics();graphics.setColor(Color.white);graphics.fillRect(0, 0, imageWidth, imageHeight);graphics.setColor(Color.black);int high = 100;int wigth = 0;graphics.setFont(new Font("宋体", Font.BOLD, 50));graphics.drawString("注册保单", 500, high);graphics.setFont(new Font("宋体", Font.BOLD, 20));high += 10;graphics.drawLine(50, high, 1150, high);for (Map<String, String> rowMap : list) {high += 50;wigth = 50;for (Map.Entry<String, String> entry : rowMap.entrySet()) {String name = entry.getKey() + ":" + entry.getValue();if ("title".equals(entry.getKey())) {high += 50;graphics.setFont(new Font("黑体", Font.BOLD, 30));graphics.drawString(entry.getValue(), wigth, high);graphics.setFont(new Font("宋体", Font.BOLD, 20));} else {graphics.drawString(name, wigth, high);wigth += 400;}}}createImage("D://test1.jpg", image);}}

java以流的形式将文字写在图片上相关推荐

  1. Android把文字写到图片上生成图片+文字的新图片

    我们项目最近需要微信分享员工二维码功能,二维码图片直接使用zxing就可以生成,但是生成之后只有一个图片,而我们需求的要求是这样的: 没错就是二维码下边有一行提示文字,你可能会想直接imageview ...

  2. ASP.NET MVC应用程序把文字写在图片上

    Insus.NET实现这篇<MVC把随机产生的字符串转换为图片>http://www.cnblogs.com/insus/p/3624235.html 之后,把字符串转换为图片,不如尝试, ...

  3. Java 创建背景透明的文字图片、将文本写到图片上

    Java 创建背景透明的文字图片.将文本写到图片上: import sun.font.FontDesignMetrics;import javax.imageio.ImageIO; import ja ...

  4. html字体效果标签,纯CSS模拟fieldset标签效果把文字写在边框上

    HTML里面有一个标签fieldset,可以实现文字写在边框上,今天项目想实现一个类似效果,并要求自定义边框上文字距离一侧的距离.下面青岛星网跟大家分享下纯CSS的实现方法. 先看下效果 HTML部分 ...

  5. ps批量修改名片文字_怎么修改图片上的文字 修改图片文字比如名片图片上面的地址需要修改下...

    现在在网络上下载的图片是不是都对有文字水印的咧是不,那么怎么修改图片上的文字呢,修改图片文字比如名片图片上面的地址需要修改下这些怎么完成?OK ,今天就让小编来给大伙科普一下,其实要做到真正的无痕迹修 ...

  6. [批量重命名工具] 批量图片识别文字来命名文件名,很多网友想看批量图片识别成文字,用图片上的文字来修改文件名,今天它来了

    很多网友想看批量图片识别成文字,用图片上的文字来修改文件名,今天他来了 因为不解决就得手动挨个挨个输入然后把文件命名好 今天又一个文件需求是这样的 图上有姓名文字,要识别出来改成每一张图跟这个一样,有 ...

  7. python怎么在图片上写字_python如何实现内容写在图片上

    本文实例为大家分享了python将内容写在图片上的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- # Created on 2018/3/20 import bas ...

  8. Java通过代码实现将字符文字变成一个图片

    public static void main(String[] args) {createFontImage("红色", new Font("宋体", Fon ...

  9. Java实现给PDF文件加文字水印和图片水印(可以自定义水印格式)

    使用Java代码给PDF文件加文字水印 直接上代码运行即可 依赖 有的可能用不上我直接复制全部了 <dependencies><!--word文件转PDF以及水印-->< ...

最新文章

  1. java面试题2019 答案
  2. Fraunhofer ISE多结太阳能电池效率达30.2%
  3. Docker(2):使用Dockerfile创建支持SSH服务的镜像
  4. redis和kafka的写性能对比
  5. ActiveMQ入门-发送消息机制的介绍
  6. 搭建分布式 ASP.NET Core Web
  7. vue控制元素的隐藏和显示
  8. Linux—图解rsyslog及通过 Loganalyzer实现集中式日志管控
  9. Dataset之图片数据增强:设计自动生成汽车车牌图片算法(cv2+PIL)根据指定七个字符自动生成逼真车牌图片数据集(带各种噪声效果)
  10. 基金定投需要注意波段操作!(文章有点长,含Python代码)
  11. int类型的整数能够表示的最大数字
  12. python 连接数据库导数_python – 使用MongoDB聚合框架计算一阶导数
  13. leap motion java小程序_Motionleap动图制作神器app
  14. 会员制实现C2B定制有机农产品,被中粮我买投资的良食网这样卖有机生鲜
  15. 记录一些面试相关的刁难题
  16. 计算机测试是指,考驾照电脑测试是什么
  17. HTML简单汇总(不全)
  18. 如何将bug杀死在摇篮里?
  19. 最新 IntelliJ IDEA 详细配置步骤(图文版)
  20. [元带你学NVMe] 设备自测试操作(NVMe Device Self-test Operations) 详解与实战

热门文章

  1. cacti mysql 修复_cacti数据库修复
  2. ChatGPT 已经对软件开发行业造成了什么影响?IT老工程师告诉你
  3. 信息学奥赛一本通 1256:献给阿尔吉侬的花束 | OpenJudge NOI 2.5 7218:献给阿尔吉侬的花束
  4. 指挥调度系统内部进行视频会议的方法
  5. sql语句中使用临时表
  6. Modelsim独立仿真
  7. 2011年年初网上最新最火的36个段子
  8. Py3+Django 获取Foursquare的Check-in History
  9. 【学者风采】沈向洋 清华大学
  10. 使用串口转USB线配置交换机方法