微信公众号开发中,微商商城系统经常会碰到要求系统自动生成授权图片,试想如果会员较多,一个个手工处理费时费力。
一般会有如下要求:
自定义背景图
附带二维码
附带文字信息
public String genQrcode(TMember member) throws Exception {
/** 生成二维码,用于图片合并 */
String url = WebConstants.PATH + "ucenter/member/inviteScan.do?inviteId=" + member.getId();
String logo = ContextUtil.getRealPath() + "/theme/wd/images/qrcode_logo.png";
String desDir = WebConstants.WEB_ROOT + "upload/code/";
String fileName = "code_" + member.getId() + ".jpg";
QRCodeUtil.encode(url, logo, desDir, fileName, true);
/** 生成推广图 */
String shareName = "share_" + member.getId() + ".jpg";
String qrcodeBg = ContextUtil.getRealPath() + "/theme/wd/images/qrcode_bg.png";
BufferedImage image1 = ImageIO.read(new File(qrcodeBg));
BufferedImage image2 = ImageIO.read(new File(WebConstants.WEB_ROOT + "upload/code/" + fileName));
BufferedImage combined = new BufferedImage(image1.getWidth(), image1.getHeight(), BufferedImage.TYPE_INT_RGB);
// paint both images, preserving the alpha channels
Graphics g = combined.getGraphics();
g.drawImage(image1, 0, 0, null);
g.drawImage(image2, 95, 600, 150, 150, null);
// paint both images, preserving the alpha channels
String uname = member.getUname();
Calendar cal = Calendar.getInstance();
cal.setTime(member.getInputDate());
cal.add(Calendar.YEAR, 3);
Font font = new Font("微软雅黑", Font.BOLD, 16);
Color color = new Color(0, 0, 0);
g.drawImage(image1, 0, 0, null);
g.setFont(font);
g.setColor(color);
g.drawString(uname, 200, 385);
g.drawString(DateUtils.formatShortDate(cal.getTime()), 191, 495);
g.drawString(member.getOpenid(), 191, 525);
// Save as new image
ImageIO.write(combined, "JPG", new File(desDir, shareName));
return "upload/code/" + shareName;
}
- 版权所有:奇站网络 转载请注明出处
- 厦门奇站网络科技有限公司,专业提供网站建设,响应式网站建设,小程序开发,系统定制开发。
- 软件开发咨询热线:吴小姐 13313868605