小程序分享图片(JAVA+小程序端)

第一次做小程序海报分享,感觉canvas还是有点难度的。

所以用了JAVA后端生成,JAVA用了 ImageCombiner 组件去开发,整体来说感觉还是便捷很多的。

复制代码
<dependency>
    <groupId>com.freewayso</groupId>
    <artifactId>image-combiner</artifactId>
    <version>2.6.5</version>
</dependency>

具体使用的话看连接:https://gitee.com/dromara/image-combiner/#12-imagecombiner%E8%83%BD%E5%A4%9F%E5%81%9A%E4%BB%80%E4%B9%88

下面我把关键代码加一下:

复制代码
//文件的话,放在static静态目录即可。 
BufferedImage bf= ImageIO.read(ImageUtil.class.getResource("/static/share.jpg"));
//linux环境的话,是没有中文字体的,需要将字体也一起打包进入jar包里面
        String path="/Alibaba-PuHuiTi-Regular.ttf";
        ImageCombiner combiner = new ImageCombiner(bf, OutputFormat.JPG);
        combiner.addTextElement("xxxxx",path, 60, 180, 100);
        //组合图片
        combiner.combine();
        //生成bufferImage,返回
        BufferedImage combinedImage = combiner.getCombinedImage();
        return combinedImage;

在controller端的话

复制代码
@GetMapping("/getOrderShareImg")
    public void loadShare(Long id, HttpServletResponse response) throws Exception {
        //业务查询逻辑
        OrderVo ncOrderVo = orderService.queryById(id);
        //拿到outputStream,
      
        ServletOutputStream os = response.getOutputStream();
        BufferedImage bufferedImage = ImageUtil.genImage(ncOrderVo);

         //write即可

        ImageIO.write(bufferedImage,"jpg",os);
        os.close();
    }

小程序端的话

javascript 复制代码
wx.downloadFile({
    url: request.BASE_URL+'api/wxapp/getOrderShareImg?id='+this.data.order.id, // 下载url
    success (res) {
      // 下载完成后转发
      wx.showShareImageMenu({
        path: res.tempFilePath,
        success() {},
        fail: console.error,
      })
    },
    fail: console.error,
  })
相关推荐
逍遥德5 分钟前
MQTT教程详解-05.SpringBoot集成mqtt client 性能分析
java·spring boot·spring·mt
云烟成雨TD10 分钟前
Spring AI 1.x 系列【54】Retry 机制分析
java·人工智能·spring
weixin_5231853212 分钟前
Collections.unmodifiableMap详解:真的不可修改吗?
java·linux·前端
点燃大海13 分钟前
SpringAI构建智能体
java·spring boot·spring·springai智能体
xier_ran15 分钟前
【infra之路】02_RadixAttention与KV_Cache管理
java·spring boot·spring
黑马师兄28 分钟前
RAG混合检索深度解析:让AI真正找到你要的内容
java·人工智能·ai·agent·rag·ai-native
码客日记33 分钟前
Spring Boot 配置文件敏感信息加密(Jasypt 企业级完整方案)
java·spring boot·git
凡人叶枫1 小时前
Effective C++ 条款04:确定对象被使用前已先被初始化
java·linux·开发语言·c++·嵌入式开发
极客先躯1 小时前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
克里斯蒂亚诺更新1 小时前
微信小程序使用vant4 weapp自定义菜单 但是弹出层却被菜单遮挡的解决办法
微信小程序·小程序·notepad++