修复练习不能分享的问题

This commit is contained in:
kron
2025-11-11 10:13:14 +08:00
parent 81ab085e48
commit dfc62c7e3f
9 changed files with 60 additions and 128 deletions

View File

@@ -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",