微信小程序实现替换logo功能

Posted 长城守卫队长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序实现替换logo功能相关的知识,希望对你有一定的参考价值。

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功能的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序获取二维码并把logo替换为自己的头像

微信小程序菊花码生成

微信小程序菊花码生成

微信小程序logo图片显示在哪里

微信小程序实现微信支付功能(可用)

微信小程序是用啥技术实现的?