1.背景
产品觉得用公司logo生成的的二维码太丑
觉得橘黄色和黑色不搭配,希望替换logo,在此之前,我也是没有做过这个功能的,于是我查阅了大量资料。加上自己的代码,实现了这个功能。实现的效果如下
2.代码实现逻辑
首先我们知道我们获取的微信的二维码是通过调用微信官方接口生成的,他们会给我们返回一个 InputStream
我们只管处理InputStream stream对象就可以了,具体编写的代码如下:
package com.qun.b; import org.; import org.Factory; 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 = LoggerFac); /** * 替换 * @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.getResource("/").getPath() + "static;)); Graphics2D g = bdground.createGraphics(); g.drawImage(logo, 78, 78, 124, 124, null); g.dispose(); ByteArrayOutputStream result = new ByteArrayOutputStream(); ImageIO.write(bdground, "jpg", result); re(); byte[] resultByte = re(); return resultByte; }catch (Exception e){ logger.error()); }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 图片:
替换效果:
完美完成微信小程序替换菊花码功能。