前言:应公司需求,需要将二维码和公司的logo进行合成。

实现步骤:

1、生成二维码。

2、切好logo图。

3、图片进行合成。

直接贴代码:

/*** 生成二维码* @param backLink  扫码回调链接* @param savePath  二维码保存路径* @return 返回保存路径(用于保存数据库)* @throws IOException*/public static String createQRCode(String backLink,String savePath) throws IOException {//计算二维码图片的高宽比int v =6;int width = 67 + 12 * (v - 1);int height = 67 + 12 * (v - 1);Qrcode x = new Qrcode();x.setQrcodeErrorCorrect('L');x.setQrcodeEncodeMode('B');//注意版本信息 N代表数字 、A代表 a-z,A-Z、B代表 其他)x.setQrcodeVersion(v);byte[] d = backLink.getBytes("utf-8");//汉字转格式需要抛出异常//缓冲区BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);//绘图Graphics2D gs = bufferedImage.createGraphics();gs.setBackground(Color.WHITE);gs.setColor(Color.BLACK);gs.clearRect(0, 0, width, height);//偏移量int pixoff = 2;if (d.length > 0 && d.length < 120) {boolean[][] s = x.calQrcode(d);for (int i = 0; i < s.length; i++) {for (int j = 0; j < s.length; j++) {if (s[j][i]) {gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);}}}}gs.dispose();bufferedImage.flush();//设置图片格式,与输出的路径String url = savePath;ImageIO.write(bufferedImage, "png", new File(url));System.out.println("二维码生成完毕");return url;}

1、生成二维码,需要注意地方:文件的后缀和版本号

2、合成图片(格式为jpg,内容可随意更改)

/*** 图片合成* @param mainImgPath   主图片路径* @param qrcodePath    二维码路径* @param text          文字* @param compoundPath  图片合成保存路径* @param databasePath  数据库保存路径* @return  保存路径*/public static String CompoundImage(String mainImgPath, String qrcodePath,String text,String compoundPath,String databasePath) {String ewmurl="";try {//1、获取主图片BufferedImage big = ImageIO.read(new File(mainImgPath));java.net.URL url = new URL("https://img-blog.csdn.net/20150906104118760");//2、拿到二维码BufferedImage erweima = ImageIO.read(new File(qrcodePath));int width = 709;int height = 472;Image image = big.getScaledInstance(width, height, Image.SCALE_SMOOTH);BufferedImage bufferedImage2 = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);//3、开始绘图Graphics2D g = bufferedImage2.createGraphics();g.drawImage(image, 0, 0, null);g.drawImage(erweima, 84, 44, 300, 300, null);Font font = new Font("微软雅黑", Font.BOLD, 38);g.setFont(font);g.setPaint(Color.BLACK);//4、设置位置int wordWidth = ImageUtils.getWordWidth(font, text);int i = width / 2;int i1 = (i - wordWidth) / 2;int numWidth=i+i1;g.drawString(text, numWidth-10, 310+28);g.dispose();ewmurl =compoundPath;ImageIO.write(bufferedImage2, "jpg", new File(ewmurl));System.out.println("图片生成完毕");ewmurl = databasePath;} catch (Exception e) {e.printStackTrace();}return ewmurl;}

3、合成图片(如果位置有规律,可以将位置算出来,分享一个读取px的方法)

public static int getWordWidth(Font font, String content) {FontDesignMetrics metrics = FontDesignMetrics.getMetrics(font);int width = 0;for (int i = 0; i < content.length(); i++) {width += metrics.charWidth(content.charAt(i));}return width;}

效果:

如有不足,请多指教!

GitHub地址:https://github.com/chenmissyu/csdn-demo.git

Java实现合成图片相关推荐

  1. java盒图_java合成图片

    package com.pbids.sanqin.util; import javax.imageio.ImageIO; import java.awt.*; import java.awt.imag ...

  2. java如何打logo,利用java给网站图片打上文本或图片logo

    这是个本地化应用,稍加修改便可做成个Action,上传图片时调用一下就能给你网站的图片打上文本或图像logo.代码如下 import java.awt.Font; import java.awt.Gr ...

  3. ImageMagick利用蒙版合成图片

    先看合成后的效果图. 需要的图片素材: 1.一张图片(335x600) 2.一张蒙版图片(335x600) 3.一张相框图片(335x600) 第一步,根据蒙板和图片,截取图片.而且所截取的图片之外的 ...

  4. java获取远程图片并在图片上写文字

    本编文章主要是分享一下,从远程获取图片文件,用java在图片上写文字并合成图片的示例.一下代码完全拷贝后是可以正常运行的. 主要有三个类: DrawPicFromUrlToOSS:核心类,获取图片并在 ...

  5. java 处理小图片昵称_java 图片处理

    图片处理工具类, 包括:读取本地图片.网络图片,图片合成(图片水印),图片上写文字(文字水印),16进制和Color对象的互转 package com.chat; import java.awt.Al ...

  6. vue使用html2canvas合成图片

    vue.jpg 先看效果 image.png ---start--- 1.先安装依赖 [传送门] (http://html2canvas.hertzen.com/) npm install --sav ...

  7. java批量转换图片格式

    废话不多直接上代码,代码其实也不多.... package com.qiao.testImage;import java.awt.image.BufferedImage; import java.io ...

  8. java 图片缓存工具,java缓存读取图片解决方案

    java缓存读取图片 老师布置了任务,需要把数据库中的图片一缓存的形式读出,不要说什么数据库中路劲,图片整体较大,在给别人使用时不现实. 关键代码:for(int i=0;i<1;i++){ d ...

  9. php 远程图片合拼,PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】...

    本文实例讲述了PHP实现将几张照片拼接到一起的合成图片功能.共享给大家供大家参考,详细如下: /** * 作品合成程序 * 针对单面,封面不做特殊处理 */ $src_path = $argv[1]; ...

  10. java添加背景图片_Java怎么添加背景图片

    首先,导入相关的包: import java.awt.BorderLayout; import java.awt.Container; import javax.swing.ImageIcon; im ...

最新文章

  1. C++ 测量程序运行时间 任务管理看内存
  2. 全国计算机等级考试一级教程讲义资料,计算机等级考试一级教程讲义.docx
  3. 在Docker中运行SpringBoot程序
  4. r语言ggplot2 多线图绘制图例_plotnine: Python版的ggplot2作图库
  5. wordpress后台添加子菜单 add_submenu_page()
  6. Dynamic Clock in Terminal.
  7. pb 哪里找到系统图标_建议收藏的7个高质量图标网站,一网打尽图标素材
  8. 1039 字符消除 java_Hihocoder 1039 字符消除
  9. FISCO BCOS(十)——— FISCO BCOS的离线安装
  10. php讲一个正整数前补0,php 数字补零的两种的简单示例
  11. 非标自动化3D选型软件三维SW合集solidworks标准件机械设计电机库
  12. WinRAR去除广告
  13. vertica常用sql语句总结
  14. 均线颜色怎么区分_股票均线颜色
  15. Day3-中文分词技术(常用分词技术介绍)
  16. 随机生成50道加减算术题
  17. 高通证实MSM8998就是骁龙835
  18. 我的linux系统怎么输入pv,如何在Linux系统中使用pv命令
  19. word文件怎么另存
  20. matlab 增量学习,支持向量机在线增量学习算法的MATLAB实现

热门文章

  1. symbian 如何在安装时备份sis文件
  2. golang vendor目录
  3. SVN版本库修改URL路径或者IP地址
  4. 中国车牌号的识别大全
  5. 模拟购物车系统(添加、修改、查询、结算)(Java实现)
  6. Spring Boot系列——日志配置
  7. javascript:void(0)的作用
  8. python中complex的用法,Python complex()函数
  9. python判断性别_惊呆|根据三围数据判断出用户性别竟是python使用逻辑回归算法搞的鬼!...
  10. Blob对象判断是不是图片类型以及Blob数据下载