1.背景

产品觉得用公司logo生成的的二维码太丑

觉得橘黄色和黑色不搭配,希望替换logo,在此之前,我也是没有做过这个功能的,于是我查阅了大量资料。加上自己的代码,实现了这个功能。实现的效果如下

2.代码实现逻辑

首先我们知道我们获取的微信的二维码是通过调用微信官方接口生成的,他们会给我们返回一个 InputStream

我们只管处理InputStream   stream对象就可以了,具体编写的代码如下:

package com.qun.bside.business.util;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;/*** 小程序logo 替换*/
public class ImageLogoUtil {private static Logger logger = LoggerFactory.getLogger(ImageLogoUtil.class);/*** 替换* @param in* @return* @throws Exception*/public static byte[] changLogo(InputStream in) throws Exception {BufferedImage bdground = null;BufferedImage logo = null;try {bdground = ImageIO.read(in);logo = ImageIO.read(new File(ImageLogoUtil.class.getResource("/").getPath() + "static/mplogo.png"));Graphics2D g = bdground.createGraphics();g.drawImage(logo, 78, 78, 124, 124, null);g.dispose();ByteArrayOutputStream result = new ByteArrayOutputStream();ImageIO.write(bdground, "jpg", result);result.flush();byte[] resultByte = result.toByteArray();return resultByte;}catch (Exception e){logger.error(e.getMessage());}finally {if (bdground != null) {bdground.getGraphics().dispose();bdground = null;}if (logo != null) {logo.getGraphics().dispose();logo = null;}if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}return null;}
}

logo 图片:

替换效果:

完美完成微信小程序替换菊花码功能。

微信小程序实现替换logo功能相关推荐

  1. 微信聊天自动解析html文本,微信小程序纯文本实现@功能

    前言 大家肯定对@功能不陌生,在如今的各大社交软件中它是一种不可或缺的功能.实现@人的功能并不复杂,只需将@人员的id传给后端,后端下发通知即可.主要的复杂点在于一键删除功能与变色功能,web端可以使 ...

  2. nodejs android 推送,利用Nodejs怎么实现一个微信小程序消息推送功能

    利用Nodejs怎么实现一个微信小程序消息推送功能 发布时间:2021-01-20 13:55:29 来源:亿速云 阅读:92 作者:Leah 今天就跟大家聊聊有关利用Nodejs怎么实现一个微信小程 ...

  3. php 微信小程序 循环 多选,微信小程序实现多选功能

    本文为大家分享了微信小程序实现多选功能的具体代码,供大家参考,具体内容如下 代码: {{num + 1}}/{{quesyion.length}}{{question[num][0]}} A {{qu ...

  4. 如何实现消息功能_如何实现微信小程序的轮盘抽奖功能

    为了吸引用户,商家会做一些活动,利用赠送或充值的积分来进行抽奖,现在来讲下微信小程序如果实现轮盘抽奖的功能,先看下图: 上面展示的就是轮盘抽奖,一共有六个奖项,其中一个是"不中奖" ...

  5. 微信小程序可以实现很多功能

    微信小程序可以实现很多功能,今天就教大家如何利用小程序插件来实现这些功能:  1.直播 你可以在「上线了」选择一个电商(或超级云名片-电商版)小程序模板,在"应用中心"里添加小程序 ...

  6. 借鉴华为HiLink实现微信小程序智能配网功能

    借鉴华为HiLink实现微信小程序智能配网功能 微信小程序介绍 微信公众号智能配网 Smartconfig实现原理 Smartconfig技术的弊端 AP配网技术的出现 微信小程序智能配网 模块端设置 ...

  7. 微信小程序实现时间预约功能

    微信小程序 实现时间预约功能   类似这样 1.wxml <!--pages/orderTime/index.wxml--> <view class='containt'>&l ...

  8. 微信小程序 实现换肤功能

    参考链接: (1)微信小程序实现换肤功能 https://www.jb51.net/article/136445.htm (2)微信小程序实现换肤功能 https://blog.csdn.net/qq ...

  9. 微信小程序云开发——常用功能2:操作云数据库一键批量导入数据(导入json文件)

    微信小程序云开发--常用功能2:操作云数据库一键批量导入数据(导入json文件) 今天我们要添加100条数据.下面的过程是先创建一条记录,然后导出这条数据看json文件中是如何编辑字段的,然后仿照这个 ...

最新文章

  1. HTML4.01复习笔记一
  2. 神经网络-全连接层(1)
  3. intraweb php,使用 IntraWeb (40) - 自定义 Session 数据
  4. Qt之QSpacerItem
  5. React之state总结
  6. 函数返回值是否使用引用类型的问题:理解引用、返回值
  7. Windows ×××服务器配置6-启用L2TP方式CA模式访问①
  8. 移动VS.NET2010帮助文档
  9. CentOS 6.5 安装 Redis 执行 make #error Newer version of jemalloc required
  10. arcgis许可服务器怎么修改,【ARCGIS】修改ARCGIS许可文件有效期
  11. gRPC Name Resolution
  12. 计算机毕业设计ssm文档资料管理系统
  13. Android项目“error: Apostrophe not preceded by \ (”报错解决方法
  14. work with用法
  15. 【教育教学资源】教育资讯、教学功能、当老师、或者补习班给学生的资料
  16. TokenSky DeFi高峰论坛区块链经济学者朱幼平:DeFi究竟有没有前途?
  17. 卡塔尔世界杯壁纸已上线,下载的壁纸清晰度不够?教你修复清晰
  18. HCIP-IoT 芯片与模组
  19. AD PCB各层含义
  20. 下一清分日期是几年前_清分日期2018年11/8号,实习期在2019年1/1号 B2清分日期在实习期前...

热门文章

  1. 题解 JZOJ 1353.渡河问题
  2. compiz在debian上的安装和使用
  3. vertica MySQL_Vertica数据库 安装 | 学步园
  4. 没有项目种类分配到科目 1901090000/KTK
  5. springboot 启动banner 打印 佛祖保佑
  6. 3款养生保健粥护理肠胃保健康
  7. 非线性规划(二): Matlab 求解约束极值问题
  8. 学生搭配问题数据结构报告c语言,数据结构课程设计_学生搭配问题.doc
  9. 比尔·盖茨买百万亩农地成美“头号地主”,图扑数字孪生农场
  10. Go语言-switch case | switch中判断多个值、interface conversion: interface {} is float64, not int