Rumah > applet WeChat > Pembangunan program mini > Bawa anda membangunkan program kecil untuk menjana avatar untuk Tahun Harimau dan Festival Musim Bunga

Bawa anda membangunkan program kecil untuk menjana avatar untuk Tahun Harimau dan Festival Musim Bunga

青灯夜游
Lepaskan: 2022-01-28 15:55:05
ke hadapan
3081 orang telah melayarinya

Artikel ini akan membawa anda mengikuti arah aliran dan membuat program kecil untuk membuat avatar untuk Tahun Festival Musim Bunga Harimau Dapatkan avatar WeChat dan pilih bingkai avatar untuk mensintesis avatar Tahun Musim Bunga Harimau I harap ia akan membantu semua orang!

Bawa anda membangunkan program kecil untuk menjana avatar untuk Tahun Harimau dan Festival Musim Bunga

Festival Musim Bunga akan datang Hari ini saya melihat seorang netizen berkongsi alat penciptaan avatar Tahun Harimau. Rasanya sangat bagus buat program kecil untuk berlatih, kemudian cuba dengan yang ini.

Mula-mula rendering terakhir:

Bawa anda membangunkan program kecil untuk menjana avatar untuk Tahun Harimau dan Festival Musim Bunga

Mari kita bincangkan proses pelaksanaan

Langkah pertama: dapatkannya pertama Kod utama untuk gambar avatar WeChat semasa adalah seperti berikut Ambil perhatian bahawa gambar avatar yang diperoleh secara lalai bukan definisi tinggi dan perlu ditukar kepada gambar definisi tinggi terlebih dahulu untuk mengelakkan kabur selepas generasi.

 getUserProfile(e) {
    console.log(e)
    let that = this;
    wx.getUserProfile({
      desc: '仅用于生成头像使用',
      success: (res) => {
        var url = res.userInfo.avatarUrl;
        while (!isNaN(parseInt(url.substring(url.length - 1, url.length)))) {
          url = url.substring(0, url.length - 1)
        }
        url = url.substring(0, url.length - 1) + "/0";
        res.userInfo.avatarUrl = url;
        console.log(JSON.stringify(res.userInfo));
        that.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
        that.drawImg();
      }
    });
  },
Salin selepas log masuk

Langkah 2: Mensintesis avatar Dapatkan fail setempat daripada gambar bahan dan gambar avatar yang diperoleh pada langkah pertama, dan kemudian gunakan komponen cavas program mini untuk mensintesisnya.

drawImg() {
    let that = this;
    wx.showLoading({
      title: '生成头像中...',
    })
    let promise1 = new Promise(function (resolve, reject) {
      wx.getImageInfo({
        src: that.data.userInfo.avatarUrl,
        success: function (res) {
          resolve(res);
        }
      })
    });
    var mask_id = that.data.now_mask;
    let promise2 = new Promise(function (resolve, reject) {
      wx.getImageInfo({
        src: `../../assets/img/mask0${mask_id}.png`,
        success: function (res) {
          console.log(res)
          resolve(res);
        }
      })
    });
    Promise.all([
      promise1, promise2
    ]).then(res => {
      console.log(res)
      var windowWidth = wx.getSystemInfoSync().windowWidth
      var context = wx.createCanvasContext('myAvatar');
      var size = windowWidth /750 * 500
      // var size = 500
      context.drawImage(res[0].path, 0, 0, size, size);
      context.draw(true)
      context.save();
      context.drawImage('../../'+res[1].path, 0, 0, size, size);
      context.draw(true)
      context.save();

    })
    wx.hideLoading()
  },
Salin selepas log masuk

Langkah 3: Muat turun gambar yang disintesis ke album tempatan.

canvasToTempFile(){
    if(!this.data.userInfo){
      wx.showModal({
        title: '温馨提示',
        content: '请先点击上方获取微信头像',
        showCancel: false,
      })
      return
    }
    var windowWidth = wx.getSystemInfoSync().windowWidth
    var size = 500
    // var dpr = 750 / windowWidth
    wx.canvasToTempFilePath({
      x: 0,
      y: 0,
      height: size,
      width: size,
      canvasId: 'myAvatar',
      success: (res) => {
        wx.saveImageToPhotosAlbum({
          filePath: res.tempFilePath,
          success: result => {
            wx.hideLoading();
            wx.showModal({
              content: '图片已保存到相册,请前往微信去设置哟!',
              showCancel: false,
              success: function(res) {
                if (res.confirm) {
                  console.log('用户点击确定');
                }
              }
            })
          }, fail(e) {
            wx.hideLoading();
            console.log("err:" + e);
          }
        })
      }
    });
  },
Salin selepas log masuk

Dengan cara ini, fungsi utama tercapai.

Akhir sekali, letakkan kod program mini, semua orang dialu-alukan untuk mengimbas kod dan mengalaminya:

Bawa anda membangunkan program kecil untuk menjana avatar untuk Tahun Harimau dan Festival Musim Bunga

Akhir sekali, projek semasa telah sumber terbuka: https://github.com/hackun666/new-year-face

Saya ucapkan selamat menyambut Pesta Musim Bunga dan semoga berjaya dalam Tahun Harimau!

Alamat asal: https://juejin.cn/post/7057807283463389191

Pengarang: hackun

[Cadangan pembelajaran berkaitan: 】

Atas ialah kandungan terperinci Bawa anda membangunkan program kecil untuk menjana avatar untuk Tahun Harimau dan Festival Musim Bunga. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan