perf: 提高二维码生成图像清晰度的放大倍率

- 本地生成二维码时将 `createDataURL` 的第二个参数从 `cellSize * 2` 调整为 `cellSize * 4`,提升生成图片清晰度
- 边缘函数生成二维码时同步将 `createDataURL` 的第二个参数从 `cellSize * 2` 调整为 `cellSize * 4`,保证本地与线上效果一致
- 维持原有 `cellSize` 计算逻辑不变,确保二维码模块数与边距的适配策略一致
This commit is contained in:
Abner
2026-06-25 22:25:41 +08:00
parent 7298ae4a0d
commit d297fa9f55
2 changed files with 3 additions and 3 deletions

View File

@@ -154,7 +154,7 @@ export default async (request, context) => {
qr.make();
const moduleCount = qr.getModuleCount();
const cellSize = Math.max(1, Math.floor(numSize / (moduleCount + QR_MARGIN_MODULES)));
const qrcode = qr.createDataURL(cellSize, cellSize * 2);
const qrcode = qr.createDataURL(cellSize, cellSize * 4);
const duration = Date.now() - qrStartTime;
console.log(`[edge:qrcode-generate] Success: size=${numSize}, modules=${moduleCount}, cellSize=${cellSize}, duration=${duration}ms, qrcodeLength=${qrcode.length}`);

View File

@@ -213,8 +213,8 @@ export async function generateQRCodeLocal(data, size = DEFAULT_QR_SIZE, labels =
const cellSize = Math.max(1, Math.floor(safeSize / (moduleCount + QR_MARGIN_MODULES)));
const largeCellSize = Math.max(1, Math.floor(LARGE_PREVIEW_SIZE / (moduleCount + QR_MARGIN_MODULES)));
const imageUrl = qr.createDataURL(cellSize, 2);
const largeImageUrl = qr.createDataURL(largeCellSize, 2);
const imageUrl = qr.createDataURL(cellSize, cellSize * 4);
const largeImageUrl = qr.createDataURL(largeCellSize, largeCellSize * 4);
console.log(`[QRCode] Local generation success: size=${safeSize}, modules=${moduleCount}, cellSize=${cellSize}`);