feat: ntrp逻辑变更 & 替换海报二维码
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import Taro from "@tarojs/taro";
|
||||
|
||||
const qrCodeUrl =
|
||||
"https://bimwe.oss-cn-shanghai.aliyuncs.com/front/ball/images/5e013195-fc79-4082-bf06-9aa79aea65ae.png";
|
||||
// const qrCodeUrl =
|
||||
// "https://bimwe.oss-cn-shanghai.aliyuncs.com/front/ball/images/5e013195-fc79-4082-bf06-9aa79aea65ae.png";
|
||||
|
||||
const ringUrl =
|
||||
"https://bimwe.oss-cn-shanghai.aliyuncs.com/front/ball/images/b635164f-ecec-434a-a00b-69614a918f2f.png";
|
||||
@@ -17,6 +17,58 @@ const mapIcon =
|
||||
const logoText =
|
||||
"https://bimwe.oss-cn-shanghai.aliyuncs.com/front/ball/images/9d8cbc9d-9601-4e2d-ab23-76420a4537d6.png";
|
||||
|
||||
/** 将 base64 图片转换为临时文件路径 */
|
||||
// export function base64ToTempFilePath(base64Data: string): Promise<string> {
|
||||
// return new Promise((resolve, reject) => {
|
||||
// const fsm = Taro.getFileSystemManager();
|
||||
// // 生成唯一文件名
|
||||
// const filePath = `${Taro.env.USER_DATA_PATH}/temp_qrcode_${Date.now()}.png`;
|
||||
|
||||
// // 去掉 data:image/png;base64, 前缀(如果有)
|
||||
// const base64 = base64Data.replace(/^data:image\/\w+;base64,/, '');
|
||||
|
||||
// fsm.writeFile({
|
||||
// filePath,
|
||||
// data: base64,
|
||||
// encoding: 'base64',
|
||||
// success: () => fsm.access({
|
||||
// path: filePath,
|
||||
// success: () => resolve(filePath),
|
||||
// fail: (e) => reject(e),
|
||||
// }),
|
||||
// fail: reject,
|
||||
// });
|
||||
// });
|
||||
// }
|
||||
|
||||
export function base64ToTempFilePath(base64Data: string): Promise<string> {
|
||||
return new Promise((resolve, reject) => {
|
||||
const fsm = Taro.getFileSystemManager();
|
||||
const filePath = `${Taro.env.USER_DATA_PATH}/temp_qrcode_${Date.now()}.png`;
|
||||
|
||||
// 去掉 data:image/png;base64, 前缀(如果有)
|
||||
const base64 = base64Data.replace(/^data:image\/\w+;base64,/, '');
|
||||
|
||||
// 将base64转换成ArrayBuffer
|
||||
const arrayBuffer = Taro.base64ToArrayBuffer(base64);
|
||||
|
||||
fsm.writeFile({
|
||||
filePath,
|
||||
data: arrayBuffer,
|
||||
encoding: 'binary', // 这里使用'binary'
|
||||
success: () => {
|
||||
fsm.access({
|
||||
path: filePath,
|
||||
success: () => resolve(filePath),
|
||||
fail: (e) => reject(e),
|
||||
});
|
||||
},
|
||||
fail: reject,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/** 获取图片宽高 */
|
||||
function getImageWh(src: string): Promise<{ width: number; height: number }> {
|
||||
return new Promise((resolve) => {
|
||||
@@ -173,7 +225,7 @@ function drawTextWrap(
|
||||
/** 核心纯函数:生成海报图片 */
|
||||
export async function generatePosterImage(data: any): Promise<string> {
|
||||
console.log("start !!!!");
|
||||
const dpr = Taro.getSystemInfoSync().pixelRatio;
|
||||
const dpr = Taro.getWindowInfo().pixelRatio;
|
||||
const width = 600;
|
||||
const height = 1000;
|
||||
|
||||
@@ -292,7 +344,7 @@ export async function generatePosterImage(data: any): Promise<string> {
|
||||
400 / (logoWh.width / logoWh.height)
|
||||
);
|
||||
|
||||
const qrImg = await loadImage(canvas, qrCodeUrl);
|
||||
const qrImg = await loadImage(canvas, data.qrCodeUrl);
|
||||
ctx.drawImage(qrImg, width - 12 - 150, top - 50, 160, 160);
|
||||
|
||||
left = 16;
|
||||
|
||||
Reference in New Issue
Block a user