微信小程序> java实现用用户头像代替小程序码的logo(任意图片替换小程序码logo)

java实现用用户头像代替小程序码的logo(任意图片替换小程序码logo)

浏览量:673 时间: 来源:恐龙的尾巴

由于个人水平有限,实在是不能保证代码的严谨性,我只能说是可以实现功能,用来个性化小程序码logo

//生成文件名称,这个不是必须的,可以根据自己的业务逻辑来写Random random = new Random();  int rannum = (int) (random.nextDouble() * (99999 - 10000 + 1)) + 10000;SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");String newFileName = df.format(new Date())+rannum+".png";    //截取为正方形图片,长宽自定义,我自己估摸着是195,这个可以根据自己情况自己设置大小try {
    //此处是要替代logo的自定义图片路径,自定义图片不要用透明的或者半透明的    BufferedImage image = ImageIO.read(new File("C:\Program Files\tomcat-huipiao\webapps\Financial\img\"+imgNameString));    //int w = image.getWidth();    //int h = image.getHeight();    BufferedImage output = new BufferedImage(195, 195, BufferedImage.TYPE_INT_ARGB);    Graphics2D g2 = output.createGraphics();    output = g2.getDeviceConfiguration().createCompatibleImage(195, 195, Transparency.TRANSLUCENT);    g2.dispose();    g2 = output.createGraphics();    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);    g2.fillRoundRect(0, 0,195, 195, 720, 720);    g2.setComposite(AlphaComposite.SrcIn);    g2.drawImage(image, 0, 0, 195, 195, null);    g2.dispose();    
    //这是生成的临时替换logo图片的保存路径                 ImageIO.write(output, "png", new File("C:\Program Files\tomcat-huipiao\webapps\Financial\img\"+newFileName)); } catch (IOException e) {        e.printStackTrace(); }     //生产新的二维码图片 try{
    //此处是小程序码的路径    BufferedImage appletImg = ImageIO.read(new FileInputStream("C:\Program Files\tomcat-huipiao\webapps\Financial\img\"+codeNameString));    Graphics2D g2d = appletImg.createGraphics();    // 设置抗锯齿的属性      g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);    g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);    
    //此处是替换logo的临时图片路径    BufferedImage centerImg = ImageIO.read(new File("C:\Program Files\tomcat-huipiao\webapps\Financial\img\"+newFileName));    g2d.drawImage(centerImg.getScaledInstance(centerImg.getWidth(), centerImg.getHeight(), Image.SCALE_SMOOTH), (appletImg.getWidth() - centerImg.getWidth()) / 2, (appletImg.getHeight() - centerImg.getHeight()) / 2, null);    // 关闭资源    g2d.dispose();    //生成新的二维码,覆盖原来的,此处为原小程序码路径,如需另为保存,请自定义路径    ImageIO.write(appletImg, "png", new File("C:\Program Files\tomcat-huipiao\webapps\Financial\img\"+codeNameString)); }catch (Exception e){    e.printStackTrace(); } //删除生成的临时替代logo文件 new File("C:\Program Files\tomcat-huipiao\webapps\Financial\img\"+newFileName).delete();
//有啥优化意见大家可以提出


版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎