java 为透明图片添加背景颜色

  • 需求介绍
    • 解决方式

需求介绍

项目需要实现在线无纸化合同签署,调用触屏手写签名生成电子合同,在生成合同过程中需要调用OCR 技术对签署文字进行识别,在此过程中,生成的电子签图片背景必须是透明的(为了附着在合同上),但是OCR技术对透明图片上文字无法识别,因此在调用OCR前需要对图片进行处理,增加背景颜色,提高识别率。

解决方式

  1. 查阅资料发现许多同学使用 java Graphics2D 直接修改透明图片,但是直接修改的结果是添加了背景颜色,但是不是我们需要的背景颜色,参考地址:
  2. 本文的解决方式是预先生成一个白色底片,将透明图片附在生成的白色图片上,达到添加背景的目的,具体代码如下:
 /*** 前端传递的参数为base64编码的字符串* @param picStr* @return*/
public void str2Image(String picStr) {byte[] decode = Base64Utils.decode(picStr);InputStream in = new ByteArrayInputStream(decode);BufferedImage srcImage;try {srcImage = ImageIO.read(in);changeImageBackground(srcImage);} catch (IOException e) {log.error("ocr 将str转化io异常:", e);throw new ServiceException("图片添加背景色异常");}}public void changeImageBackground(BufferedImage srcImage) {BufferedImage outImage = null;try {int oldHeight = srcImage.getHeight();int oldWidth = srcImage.getWidth();int destWidth = oldWidth * 2;int destHeight = oldHeight * 2;outImage = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB);Graphics2D graphics2D = (Graphics2D) outImage.getGraphics();// 设置背景颜色graphics2D.setBackground(Color.WHITE);graphics2D.clearRect(0, 0, destWidth, destHeight);// 设置图片居中显示graphics2D.drawImage(srcImage, (destWidth - oldWidth) / 2, (destHeight - oldHeight) / 2, null);graphics2D.dispose();ByteArrayOutputStream os = new ByteArrayOutputStream();ImageIO.write(outImage, ConstantUtil.FileType.PNG, os);byte[] bytes = os.toByteArray();String string = Base64Utils.encodeToString(bytes);//  log.info(string);// 调用ocr服务// sendOcr(string);} catch (IOException e) {log.error("对ocr图片操作异常", e);throw new ServiceException("对ocr图片操作异常");}}

java 为透明图片添加背景颜色相关推荐

  1. java为文本框添加背景颜色,文本框添加背景图片,文本框背景图片,文本框添加水印[Java...

    文本框添加背景图片,文本框背景图片,文本框添加水印[Java 文本框添加水印 [Java]代码public class WatermarkTextField extends JTextField { ...

  2. java word 颜色设置_Java 给Word文档添加背景颜色

    前言 当我们制作好Word文档后,想要让枯燥乏味的文本显得有活力,或是想高亮显示文档中指定的段落或文字,此时我们可以通过为整个文档或某特定文字/段落添加背景色的形式来实现.本文将使用Free Spir ...

  3. 计算机wold标题文字加背景,office word文档添加背景图片以及背景颜色来美化枯燥乏味的文字...

    在浏览网页的时候,遇到各式各样的好看图片是常用的事,现在的需求就是如何将这些看似比较不错的图片设置为Word的文档背景.设置背景的目的是为了美化文字的同时还可以为文档增姿添彩.看到这里大家是不是有点迫 ...

  4. java 加背景颜色_Java 给Word文档添加背景颜色

    前言 当我们制作好Word文档后,想要让枯燥乏味的文本显得有活力,或是想高亮显示文档中指定的段落或文字,此时我们可以通过为整个文档或某特定文字/段落添加背景色的形式来实现.本文将使用Free Spir ...

  5. PDF如何添加背景颜色与图片背景

    众所周知,PDF文件在工作与生活中得到越来越多的使用,许多小伙伴在工作中也频频接触到pdf文件,在使用的过程中一些问题会困扰大家,比如pdf如何添加背景颜色和图片背景?下面小编就为大家操作一下PDF编 ...

  6. matlab导出图片背景_matlab美化图片之添加背景颜色

    background.png The image is generated by myself in matlab. 只是在产生的图案中给想要标注的地方添加背景颜色,同时要求背景颜色在线图的下面,代码 ...

  7. matlab 加入背景,matlab美化图片之添加背景颜色

    background.png The image is generated by myself in matlab. 只是在产生的图案中给想要标注的地方添加背景颜色,同时要求背景颜色在线图的下面,代码 ...

  8. 【教程】Spire.PDF教程:如何给PDF添加背景颜色和平铺背景图

    Spire.PDF是一个专业的PDF组件,能够独立地创建.编写.编辑.操作和阅读PDF文件,支持 .NET.Java.WPF和Silverlight.Spire.PDF的PDF API拥有丰富的功能, ...

  9. Java分享--给图片添加文字水印(文字可旋转)

    这篇文章主要介绍了Java实现给图片添加文字水印,文字水印的方法,涉及java针对图片的读取.水印添加设置等相关操作技巧,需要的朋友可以参考下 . 很多时候项目中的图片需要一定的版权,就是人家拿出去用 ...

  10. QT tableWidget给单个表格添加背景颜色

    QT tableWidget给单个表格添加背景颜色 代码示例 QWidget *widget = new QWidget(); QString wStyle = QString("backg ...

最新文章

  1. 35国,14年,世界最大科学项目,「人造太阳」即将诞生!
  2. java与spss交互,[转载]如何用SPSS做中介效应与调节效应(转)
  3. MyBatis 源码解读-mapperElement()
  4. [Leetcode][第35题][JAVA][搜索插入位置][二分法]
  5. dbhelper的使用
  6. 用朴素的英语解释9种关键机器学习算法
  7. 关于IE的RegExp.exec
  8. 分析单点登录(流程图与数据安全)
  9. 动我 Java?是时候让甲骨文退休了!
  10. R语言-异常数据处理3
  11. CCPC-Wannafly Winter Camp Day3 (Div2, onsite) I 石头剪刀布(按秩合并并查集)
  12. [转载] python:numpy数学函数和逻辑函数
  13. C#调用系统打印机(XP-58小票打印)
  14. 反恐精英代码_Steam永久降价通知!绝地求生史低促销!CS:GO源代码泄漏!
  15. 转换YV12到RGB565图像转换,附YUV转RGB测试
  16. Eclipse中英文对照表(整理笔记)
  17. 计算机的指令格式通常是由两部分组成,计算机指令由两部分组成,它们是什么...
  18. NVIDIA Maxine 姿势识别极简教程
  19. java word 水印_Java 添加水印(文本水印、图片水印)到Word文档
  20. 曙光“城市大数据平台”冲破数据孤岛、创造数据价值

热门文章

  1. Axure RP8下载以及注册
  2. Ubuntu 16.04下如何安装QT5?
  3. EasyPR编译指南
  4. Hadoop 配置文件存放位置
  5. XP桌面背景文件路径
  6. switchhost提示没有切换权
  7. 算法第四版书的C++版本代码
  8. 深度学习CNN算法原理
  9. tensorflow入门(一)波士顿房价数据集
  10. windows下搭建voip服务器