предисловие
Сценарий спроса: мы знаем, что мини-программами WeChat можно поделиться с друзьями или группами WeChat, но нельзя поделиться ими с Moments, поэтому обмен в Moments требует специальной обработки.Здесь мы объединяем мини-программы сcanvas
Используется в сочетании для создания пользовательских изображений и их локального сохранения.
код
- wxml-файл
<view>
<button type="default" size="defaultSize" bindtap="exportImg">生成图片</button>
</view>
<canvas canvas-id="myCanvas"></canvas>
- js-файл
Рисование через API холста
const ctx = wx.createCanvasContext('myCanvas');
//绘制背景图
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('center')
ctx.setFillStyle('#fff')
ctx.setFontSize(16)
ctx.fillText(userInfo.nickName, 100, 180)//用户昵称
ctx.stroke()
ctx.draw()
пройти через
wx.canvasToTempFilePath
получить локальный путь
wx.canvasToTempFilePath({
x: 0,
y: 0,
width: 300,
height: 500,
canvasId: 'myCanvas',
success: function (res) {
console.log(res.tempFilePath);
}
})
пройти через
wx.saveImageToPhotosAlbum
сохранить изображение на локальном
wx.saveImageToPhotosAlbum({
filePath: tempFilePath,//canvasToTempFilePath返回的tempFilePath
success: (res) => {
console.log(res)
},
fail: (err) => {}
})
простые визуализации
Суммировать
-
canvas
изdrawImage
Метод поддерживает только локальные изображения, а не сетевые изображения, поэтому я использую как аватар, так и фоновые изображения.getImageInfo
Этот метод обернулся. - Аватар, полученный через userInfo, квадратный, а не востребованный круг, который здесь используется
clip()
метод, необходимо сотрудничатьsave()
а такжеrestore()
, потому что если его не восстановить после обрезки, то следующий рисунок будет в этой маленькой области. - В этой демонстрации не используется API для генерации QR-кода, и заинтересованные друзья могут это сделать.Ссылка здесь
Справочная документация
Небольшая микроканальная программа для создания обмена фотографиями