修复练习不能分享的问题
This commit is contained in:
20
src/util.js
20
src/util.js
@@ -162,14 +162,29 @@ export const drawRoundImage = async (
|
||||
ctx.restore();
|
||||
};
|
||||
|
||||
const loadImage = (src) =>
|
||||
new Promise((resolve) => {
|
||||
try {
|
||||
uni.getImageInfo({
|
||||
src,
|
||||
success: (res) => resolve(res.path || res.tempFilePath || src),
|
||||
fail: () => resolve(src),
|
||||
});
|
||||
} catch (e) {
|
||||
resolve(src);
|
||||
}
|
||||
});
|
||||
|
||||
export async function generateCanvasImage(canvasId, type, user, data) {
|
||||
try {
|
||||
var ctx = uni.createCanvasContext(canvasId);
|
||||
const width = 300;
|
||||
const height = 534;
|
||||
ctx.drawImage("../static/share-bg.png", 0, 0, width, height);
|
||||
drawRoundImage(ctx, user.avatar, 17, 20, 32, 32, 20);
|
||||
ctx.drawImage(user.lvlImage, 12, 15, 42, 42);
|
||||
const avatar = await loadImage(user.avatar);
|
||||
drawRoundImage(ctx, avatar, 17, 20, 32, 32, 20);
|
||||
const lvlImage = await loadImage(user.lvlImage);
|
||||
ctx.drawImage(lvlImage, 12, 15, 42, 42);
|
||||
renderText(ctx, user.nickName, 13, "#fff", 58, 34);
|
||||
renderRankTitle(ctx, user.lvlName);
|
||||
|
||||
@@ -239,6 +254,7 @@ export const wxShare = async (canvasId = "shareCanvas") => {
|
||||
path: res.tempFilePath,
|
||||
});
|
||||
} catch (error) {
|
||||
console.log("生成图片失败:", error);
|
||||
uni.showToast({
|
||||
title: "生成图片失败",
|
||||
icon: "error",
|
||||
|
||||
Reference in New Issue
Block a user