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

【Java合并图片】使用Java实现两张图片合并成一张图片的功能(水平合并、垂直合并、透明背景颜色) 这篇文章,主要介绍如何使用Java实现两张图片合并成一张图片的功能。图片合并工具类可以实现的功能:垂直合并两个图片,水平合并两个图片(PS:可以推广到多个图片的合并)。设置合并的图片是否居中显示。设置合并图片的背景颜色,透明背景。设置合并图片的间隙。合并之后的图片输出成一个图片文件。合并之后的图片转换成base64编码字符串。 阅读详情

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图片操作异常");
        }
    }
GPU架构-SIMT 本文深度剖析了GPU的SIMT架构,从硬件实现层面解析其与SIMD的本质差异。SIMT通过将32个线程捆绑为warp执行,在标量编程模型下实现数据并行。文章对比了SIMD和SIMT的执行模型、分支处理机制及存储层次,指出SIMT是对SIMD的虚拟化抽象。重点分析了Volta架构引入的独立线程调度技术,以及访存合并对性能的关键影响。通过定量数据展示了各代GPU架构的寄存器文件规模和线程调度机制,为开发者优化GPU程序提供了硬件层面的理论基础。 阅读详情

相关推荐

量子通信:初识量子城域网

对量子城域网的概念、作用、拓扑、建设内容等进行了较为全面的初步介绍。

量子领域相关话题 3348

利用Java实现的图片中文字识别,你学会了吗?

今天有粉丝向波哥提出了这样一个疑问:给出一张图片,如何利用Java中的技术获取图片中的文字信息?如果你没有想到好的解决思路,也不用怕,看波哥来给你解决这个问题!首先说到读取文件,我们耳熟能详的肯定就是使用I/O流进行文件的读取,但如果是要将图片里面的文字提取出来又该如何去做呢?下面这种图片,供大家用于测试上面的代码,你可以把波哥上面的代码运行起来,试试看能不能把下面图片中的文字识别出来。带着这样的疑问,请大家跟波哥一起通过代码来实现一下吧,下面就是波哥给大家提供的实现代码。

威哥爱编程,华为 HDE,鸿蒙极客、优快云博客专家、《鸿蒙 HarmonyOS 5/6 开发之路》系列图书第一作者 8405

STM32实现webserver显示数据及配置参数

其实提到的将fsdata.c重命名为fsdata_custom.c,可以不重命令,将/LWIP/Target/lwipopts.h中HTTPD_USE_CUSTOM_FSDATA 定义为0,这样HTTPD_FSDATA_FILE将使用fsdata.c,避免每次生成fsdata.c需要重命令的麻烦。2、登录成功后,板卡根据板卡配置类型,返回对应的数据页面,该页面可实现数据校准、清零,以及进行到板卡参数设置页面。目前还未实现post功能以及http身份验证功能。3、板卡参数设置页面。

2694

Java 基于Graphics2D 实现海报(支持自定义颜色,背景,logo,贴图)

Java 基于Graphics2D 实现海报(支持自定义颜色,背景,logo,贴图)

林夕 1298

AI大模型实战——模型测评:如何评估大模型的表现

大模型评测体系解析:从数据集到基准测试 本文系统梳理了大模型评测的关键要素。在数据集方面,重点介绍了C-Eval等中文评估套件,强调数据质量需通过人工验证保证。评测维度涵盖自然语言理解、知识推理、代码生成等核心能力。基准测试作为标准化评估方法,Glue、SuperClue等平台提供了公平比较的依据。文章指出厂商自评榜单存在水分问题,建议关注第三方评测。同时解析了少样本和零样本两种prompt模式的应用场景差异。最后解释了"SOTA"这一术语在描述模型最优性能时的应用价值。整体呈现了大模型

小志的博客 897

19、多项式基算术:原理与运算详解

本文深入探讨了有限域 $GF(2^m)$ 中的多项式基算术,详细介绍了加法、减法、乘法和平方运算的原理与实现方法。重点分析了多项式基表示形式、模约简技术以及乘法优化策略,如高基数乘法、并行与顺序乘法器设计,并提到了Karatsuba-Ofman算法在减少乘法次数方面的优势。此外,文章还讨论了多项式基算术在密码学、编码理论等领域的应用前景,并展望了未来在高效算法设计与硬件加速方面的研究方向。

yellow的专栏 150

Graphics2D设置背景色

package test; import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File; import javax.imageio.Image...

lspgdut的博客 5693

CMake入门教程【基础篇】在Windows、Linux上安装CMake

CMake如何下载与安装

小鱼酱的博客 2727

Graphics2D画图时背景颜色设置

package test; import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.File; import javax.imageio.Image...

weixin_30421809的博客 1万+

点云焊缝提取

本文介绍了一个基于PCL库的点云处理流程,包含三个核心模块:MLS平滑处理通过多项式拟合修正点云位置;差异提取通过双向匹配定位源/目标点云的非重叠区域;统计过滤剔除离群噪声点。该流程采用"平滑-筛选-净化"的通用思路,将复杂算法封装为可配置接口,实现了工业级点云预处理。文章重点分析了各模块的原理、PCL接口调用及参数设计逻辑,同时指出参数调优、算法扩展等深入探索方向,展现了PCL在点云处理中的模块化优势与实用价值。

weixin_45196569的博客 250

Ardupilot chibios主函数学习(1)

目录 文章目录目录摘要第一部分chibios主函数**(1)主回调函数入口****(2)主回调函数入口****(3)主回调函数入口****(4)主回调函数入口**1.函数hal.scheduler->init()分析 摘要 本节主要记录自己学习Ardupilot的 chibios代码过程,欢迎批评指正。 第一部分chibios主函数 (1)主回调函数入口 AP_HAL_MAIN_...

陌城烟雨 4243

Java:实现设置图示背景色(附带源码)

此代码实现了为图示项添加背景颜色,并且通过自定义间距、字体、颜色和背景形状,展示了如何提升图示的可读性。无论是对比度、字体大小,还是背景颜色的选择,都可以根据实际需求进行调整,以提供更加友好的用户体验。

欢迎来到我的博客!这里是一个专注于计算机技术的分享平台,涵盖编程开发、算法研究、系统架构、软件工程等多个领域。无论你是初学者还是资深开发者,都能在这里找到有价值的内容。 1311

温升试验详解

温升试验是电子设备可靠性验证的重要手段,用于评估器件在正常工作或极限条件下的热稳定性。试验通过测量器件表面或关键点温度与环境温度的差值(ΔT),判断是否存在过热风险。主要依据行业标准,采用热电偶、热像仪等设备测量稳态温度。热阻分析可建立温升与功耗的关系,指导器件选型、PCB热设计和散热结构优化。典型应用包括电源模块和LED电路测试。温升试验通过系统性热分析,能有效提升产品在高负载、高温环境下的可靠性和安全性,对现代小型化、高密度电子设备尤为重要。

硬核科技 1332

html背景图片半透明遮罩,BufferedImage在图片添加半透明遮罩层

利用BufferedImage处理图片时,例如生成海报往添加图片加文字,由于背景图颜色差异不统一,需要加入纯色半透明遮罩层后,再往上面添加文字。以下代码演示:在图片底部加入一条高度20的半透明遮罩层packagecom;importjavax.imageio.ImageIO;importjava.awt.*;importjava.awt.image.BufferedImage;import...

weixin_42528090的博客 1261

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java swing 设置窗口背景颜色

java Swing 设置背景颜色: 由于Swing跟AWT有千丝万缕的联系,它既要支持AWT又要有自己新的体系,所以呢,这个如果对于AWT中的Frame是可以直接通过setBackground来设置背景色,但是对于JFrame则不可以,应该采用下面的方法: JFrame frame = new JFrame(); frame.getContentPane().setBackground(C

sxr123455的专栏 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

.net的label的背景如何设置成为透明_【Spire.PDF教程】给PDF文档添加背景颜色和背景图片...

Spire.PDF是一个专业的PDF组件,能够独立地创建、编写、编辑、操作和阅读PDF文件,支持 .NET、Java、WPF和Silverlight。Spire.PDF组件不仅支持给PDF文档的所有页面或指定页面添加背景颜色和背景图片,同时还支持给背景设置透明度以及指定背景区域。本文将介绍如何使用Spire.PDF给现有PDF文档添加背景颜色和背景图片。添加背景颜色//加载PDF文档PdfDocu...

weixin_39821605的博客 220

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java设置按钮的背景图片_java中设置JButton的背景图片,并在它上面显示文字

看下面这段代码:JPanel contentPanel = new JPanel();contentPanel.setBackground(Color.BLACK);setContentPane(contentPanel);ImageIcon icon = new ImageIcon("C:\\Users\\lenovo\\Desktop\\button.jpg");JButton enter =...

weixin_39790738的博客 955

创建日期图片

【代码】创建日期图片。

w_wensan的博客 237

安卓基本控件之Button

布局文件:     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical" >           andr

u012062979的博客 474

Java图片背景颜色变透明

java 图片背景转透明

lsy_ch的博客 1607

JAVA将图片背景色设置为透明

项目中遇到一个需要把背景图改为透明的需求,因为我这里图片可能会比较复杂所以会出现有些背景留着图片没了的问题。所以根据网络上的资源学习了一下我项目可以用的。 package file; import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; /** * 描述 The type Tm img. * * @au

qq_41940067的博客 6611

Java生成背景透明的png图片

最 近用到Java动态生成背景透明的图片功能,从gif和png中选择了png格式,自动添加链接地址:http://www.my400800.cn 去网站上的图片中。现把搜索结果总结如下:  1. 生成png图片  int width = 400;  int hei ...   最近用到Java动态生成背景透明的图片功能,从gif和png中选择了png格式,自动添加链接地址:http://w...

键盘上的舞者 631

向PDF中添加图片

1.向PDF中添加图片 PdfReader reader = new PdfReader(infilePath);//选择需要印章的pdf PdfStamper stamp=new PdfStamper(reader,newFileOutputStream(outFilePath));//加完印章后的pdf over = stamp.getOverContent(n);//设置在第几页打...

T_P_F的博客 996

【教程】Spire.PDF教程:C# 给PDF文档添加背景颜色和背景图片

Spire.PDF是一个专业的PDF组件,能够独立地创建、编写、编辑、操作和阅读PDF文件,支持 .NET、Java、WPF和Silverlight。                                                                     【下载Spire.PDF最新试用版】 Spire.PDF组件不仅支持给PDF文档的所有页面或指定页面添加背景...

Aote222的博客 937

java 盖章透明_java实现图片上传后裁剪,把白色背景变成透明图(电子印章)

应用场景:企业在白纸上盖上印章,然后软件实现透明的电子印章,在后续业务流程中使用!A4纸-----------------------------------------处理后-------------------------------------->电子印章-------->实现共分为3步1. 图片上传后预览上传图片//POST file upload//commons-file...

weixin_34201593的博客 1212

java 档案整理 生成归档章 透明背景图片

import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 生成矩形归...

GQ_GuoQi的博客 1272
下一篇: 周报/朋友圈简单@功能实现(java)
ByteMu
博客等级 码龄9年 3粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值