Maison > interface Web > js tutoriel > le corps du texte

L'applet-canvas WeChat génère des images et les enregistre localement

hzc
Libérer: 2020-06-13 17:37:55
avant
3165 Les gens l'ont consulté

Avant-propos


Scénario de demande : nous savons que l'applet WeChat peut être partagée avec des amis ou des groupes WeChat, mais ne peut pas être partagée avec Moments, donc le partage avec Moments nécessite des Let's spéciaux traitons-le. Ici, nous combinons l'applet avec canvas pour générer une image personnalisée et l'enregistrer localement.

Code


  • fichier wxml

<view>
    <button type="default" size="defaultSize" bindtap="exportImg">生成图片</button>
</view>
<canvas canvas-id="myCanvas"></canvas>
Copier après la connexion
  • js Fichier

Dessiner via canvasAPI

const ctx = wx.createCanvasContext(&#39;myCanvas&#39;);
//绘制背景图
ctx.drawImage(res.path, 0, 0, screenWidth, 500);
//绘制背景图上层的头像
ctx.save();
ctx.arc(100, 100, 30, 0, 2 * Math.PI);
ctx.clip();
ctx.drawImage(avatarUrl, 50, 50, 110, 110);//根据微信getUserInfo接口获取到用户头像
ctx.restore();
//绘制文字
ctx.setTextAlign(&#39;center&#39;)
ctx.setFillStyle(&#39;#fff&#39;)
ctx.setFontSize(16)
ctx.fillText(userInfo.nickName, 100, 180)//用户昵称
ctx.stroke()
ctx.draw()
Copier après la connexion

Obtenir le chemin local via wx.canvasToTempFilePath

wx.canvasToTempFilePath({
    x: 0,
    y: 0,
    width: 300,
    height: 500,
    canvasId: &#39;myCanvas&#39;,
    success: function (res) {
        console.log(res.tempFilePath);
    }
})
Copier après la connexion

Enregistrez les images en local via wx.saveImageToPhotosAlbum

wx.saveImageToPhotosAlbum({
    filePath: tempFilePath,//canvasToTempFilePath返回的tempFilePath
    success: (res) => {
        console.log(res)
    },
    fail: (err) => {}
})
Copier après la connexion

Rendu simples


Lapplet-canvas WeChat génère des images et les enregistre localement

Résumé méthode de 🎜>

canvas ne prend en charge que les images locales et ne prend pas en charge les images réseau, j'ai donc utilisé la méthode drawImage pour transférer à la fois l'avatar et les images d'arrière-plan. getImageInfo

L'avatar obtenu via

est carré, pas le cercle requis. La méthode userInfo est utilisée ici, et elle doit être combinée avec clip() et save(), car si ce n'est pas le cas. restauré après le recadrage, tous les dessins suivants seront dans cette petite zone. restore()

Cette fois

l'API de génération de codes QR n'est pas utilisée. Les amis intéressés peuvent l'essayer. demoVoici le lien

Tutoriel recommandé : "

Tutoriel JS"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal