以下述伪需求为例,进行Java P图的展示

一、伪需求

使用微信的收款二维码替换支付宝收款码上的二维码。

先上上图:进行素材准备,这是老婆大人的收款码,如果您看满意了,可以给她个小惊喜。

           


二、技术分析

  1. 微信收款码替换支付宝上的二维码,则意味着在图层上:支付宝收款码的作为背景图,微信二维码为前景图;
  2. 我们需要做的就是【确定微信二维码在支付宝二维码上的坐标位置】即可;

三、上代码


import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;/*** @author zhanghl* @version PicMergeService.java, v 0.1*/
@Slf4j
@Component
public class PicMergeService {/*** 背景图*/public static final String BACKGROUND = "/Users/zhanghl/merge_pic/alipay_code.jpg";/*** 前景图*/public static final String FOREGROUND = "/Users/zhanghl/merge_pic/wxminicode.png";/*** 生成的文件目录:根据自己需要修改本地路径*/public static final String MERGE_PATH = "/Users/zhanghl/merge_pic/mergecode.png";public static void main(String[] args) {try {// 读取背景图File backgroundFile = new File(BACKGROUND);BufferedImage backImgBuffer = ImageIO.read(backgroundFile);// 读取前景图File foregroundFile = new File(FOREGROUND);BufferedImage foreImgBuffer = ImageIO.read(foregroundFile);// 生成一张底图,并设置宽度与高度,跟背景图的宽度高度一致,可根据需要修改获取使用指定背景图
//            BufferedImage blankImgBuffer = new BufferedImage(backImgBuffer.getWidth(), backImgBuffer.getHeight(), BufferedImage.TYPE_INT_RGB);
//            Graphics2D graphics = (Graphics2D) backImgBuffer.getGraphics();
//            graphics.setBackground(Color.WHITE);
//            graphics.fillRect(0, 0, backImgBuffer.getWidth(), backImgBuffer.getHeight());Graphics2D graphics = (Graphics2D) backImgBuffer.getGraphics();// 合成背景图 backImgBuffergraphics.drawImage(backImgBuffer, 0, 0, null);/** 合成前景图 foreImgBuffer* 可以调整 前景图的x、y轴坐标为来查看效果*/graphics.drawImage(foreImgBuffer, 0, 0, null);// 写入本地文件ImageIO.write(backImgBuffer, "PNG", new File(MERGE_PATH));// 线上业务可以将合成的文件上传到服务器,获取对应图片地址} catch (IOException ignored) {}finally {// TODO:线上业务使用,切记合成文件后上传服务后删除本地文件}}
}
<properties><com.google.zxing>2.2</com.google.zxing>
</properties>            <!-- 条形码、二维码生成 -->
<dependencyManagement><dependencies><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>${com.google.zxing}</version></dependency><dependency><groupId>com.google.zxing</groupId><artifactId>javase</artifactId><version>${com.google.zxing}</version></dependency></dependencies>
</dependencyManagement>

四、看效果

设置前景图坐标 x = 0、y = 0 的效果

Java 实现图片合成 (com.google.zxing)相关推荐

  1. java 处理图片图片合成

    最近写了一个java的图片合成相关的项目,真的是一踩一个坑,下面博主说说遇见的一些坑和怎么解决的这些问题. 本文主要讲图片合成,加文字还是比较简单的. 先讲下我的需求,把一张图片盖到另外一张图片上面, ...

  2. JAVA操作图片/合成/电子盖章等

    JAVA操作图片/合成/电子盖章等 /**** @param mainFile* @param file1* @param f 透明度 最大为1* @param response* @return* ...

  3. Java 实现图片合成

    2019独角兽企业重金招聘Python工程师标准>>> 图片合成 利用Java的绘图方法,实现图片合成 在开始之前,先定一个小目标,我们希望通过图片合成的方式,创建一个类似下面样式的 ...

  4. java进行图片合成以及写入自定义字体

    由于工作需要做了一个利用java的Graphics2D进行图片合成且在图片上写入自定义字体文字的小功能, 那就顺便记录一些痕迹,有什么不好的地方请见谅 public static void main( ...

  5. linux centos java kumo图片合成文字 词云插件 字体乱码问题

    linux下安装微软雅黑字体库 或者其他字体 jieba 词云 kumo相关 百度随便找个ttf安装就行 用winscp直接切目录 /usr/share/fonts/ 放入*.ttf字体文件 先看看f ...

  6. Java实现图片合成

    功能 竖向合成多张大小不一致的图片,以最宽图片的为宽为合成后的宽度, 高为所有图片的总高度.图片宽度没有达到合成的宽度则填充部分使用白色画布填充. 代码 /*** 多张图片进行竖向合并成一张图片* @ ...

  7. java实现图片合成gif图——输出到具体路径或流数据上传

    一.多图片转gif 转存到输出流 /*** 多图片转gif 转存到输出流** @param imageList* @param os* @throws IOException*/private sta ...

  8. JAVA 由图片合成gif文件

    1.需要四个类,直接应用到项目中,不需要做太多改动,除了导包: 2.jpgToGif函数需要传入两个参数,第一个参数为要合成的图片路径数组,第二个参数为合成的GIF图片将存在的路径. 例如: 第一个参 ...

  9. 关于Java生成二维码(zxing)

    使用zxing生成二维码 提示:需要自己添加执行zxing.jar包 操作:点击链接去下载zxing包.GitHub - zxing/zxing: ZXing ("Zebra Crossin ...

  10. JAVA实现基于ZXing的二维码自动生成与图片合成

    JAVA实现基于ZXing的二维码自动生成与图片合成 近日做项目需要生成带有信息的二维码,并嵌入到一张图片中.实现思路采用Zxing生成二维码,java图形库进行图片的嵌入. 生成二维码 ZXing是 ...

最新文章

  1. 交换机的VACL测试
  2. BATCH+VBS脚本自动执行命令
  3. linux命令chmod
  4. Python的逻辑判断和循环 || 打印九九乘法表
  5. SDUT_2080最长公共子序列问题
  6. NIFI工作流备份和恢复
  7. 【轻量级网络】MobileNet-v2详解
  8. 数据库——Oracle(1)
  9. 今天,我们考大学是为了什么?
  10. python核心编程:入门Python编程的8个实践性建议
  11. matlab示例程序,matlab示例程序
  12. 【前端_React】React小书
  13. VS2013创建Windows服务 || VS2015+Windows服务简易教程
  14. python 基础系列(四) — Python中的面向对象
  15. 爬虫小练习:堆糖图片抓取--爬虫正式学习day1
  16. c语言编程基础 王森,《C语言编程基础第2版》王森版 习题答案
  17. App don't display in google paly
  18. 论文研读 —— 4. You Only Look Once Unified, Real-Time Object Detection (3/3)
  19. HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER开机启动程序的区别
  20. OpenCV笔记:模板匹配 cv2.matchTemplate()、cv2.minMaxLoc() 与 绘制矩形 cv2.rectangle() 方法介绍

热门文章

  1. linux可变剪切分析,SpliceR:一个用RNA-Seq数据进行可变剪接分类和预测潜在编码区域的R包...
  2. 开源驱动全球经济发展
  3. 让你轻松入门的编程学习窍门,JAVA、Python快速学习资料+练手项目
  4. MyEclipse10破解 运行run.bat闪退 亲自试验
  5. python创建person类_Python类与方法的私有化
  6. python世界杯问题
  7. 2012考研数学二第(21)题——中值定理:零点定理+数列极限:单调有界准则
  8. 内网端口映射软件之80端口映射发布网站
  9. Ribbon 服务调用
  10. 史上最全!20/21届春招/秋招 实习/校招 JAVA面试全攻略!复习回顾这一篇就够了!