• 微信小程序之base64转为本地图片


    在生成海报时 需要在海报里生成对应id的商品二维码,可以使用字符串转化为二维码图片,但是其图片格式为base64,在微信开发者工具可以正常查看,但是手机测试无法显示,需要把base64图片转为本地图片。

    1.新建base64src.js文件

    // 小程序分享二维码是base64格式,在制作分享图时,需要转换为图片格式

    const fsm = wx.getFileSystemManager();
    const FILE_BASE_NAME = 'tmp_base64src'; //自定义文件名
    
    function base64src(base64data, cb) {
      const [, format, bodyData] = /data:image/(w+);base64,(.*)/.exec(base64data) || [];
      if (!format) {
        return (new Error('ERROR_BASE64SRC_PARSE'));
      }
      const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`;
      const buffer = wx.base64ToArrayBuffer(bodyData);
      fsm.writeFile({
        filePath,
        data: buffer,
        encoding: 'binary',
        success() {
          cb(filePath);
        },
        fail() {
          return (new Error('ERROR_BASE64SRC_WRITE'));
        },
      });
    };
    
    export { base64src };
    
    2、在需要使用的文件中引入并使用
    import { base64src } from '../../utils/base64src.js'
    Page({
      data: {
        shareQrImg: "data:image/jpeg;base64,/9j/4AAQSkZJRgA........GASDFKGKF=" //base64图片
      },
      onLoad: function (options) {
        base64src(this.data.shareQrImg, res => {
          console.log(res) // 返回图片地址,直接赋值到image标签即可
        });
      },
    })
    
    3、如果需要网络图片转换成base64格式。
    wx.request({
      url: "https://s0.2mdn.net/simgad/10657937226496242109",
      method: 'GET',
      responseType: 'arraybuffer',
      success: (res) => {
        let base64 = wx.arrayBufferToBase64(res.data);
        let userImageBase64 = 'data:image/jpg;base64,' + base64;
        console.log(userImageBase64); // 打印base64格式图片
        // 如果需要使用本地缓存图片,请参照第一步
      }
    })
    
  • 相关阅读:
    vector
    codeforces 1453D. Checkpoints
    [ICPC2019 WF]Hobson's Trains
    [ICPC2019 WF]Circular DNA
    计算几何板子
    CSP-S2020 贪吃蛇(洛谷民间数据)
    CSP-S2020 函数调用(洛谷民间数据)
    [NOI Online #3 提高组]魔法值
    [NOI Online #1 提高组]冒泡排序
    佳能m62套机5500 佳能EOS M50 M6 MARK2 II二代 最低到过5800
  • 原文地址:https://www.cnblogs.com/jessie-xian/p/11571609.html
Copyright © 2020-2023  润新知