|
@@ -150,6 +150,12 @@ export default {
|
|
|
this.modalVisible = false;
|
|
|
},
|
|
|
handleClose() {
|
|
|
+ // 释放所有创建的 URL 对象
|
|
|
+ this.croppedImages.forEach((crop) => {
|
|
|
+ if (crop.src && crop.src.startsWith("blob:")) {
|
|
|
+ URL.revokeObjectURL(crop.src);
|
|
|
+ }
|
|
|
+ });
|
|
|
// 重置数据
|
|
|
this.taskDetail = {
|
|
|
sheetUrls: [],
|
|
@@ -245,11 +251,16 @@ export default {
|
|
|
Math.round(cropParams.h) // 目标 height
|
|
|
);
|
|
|
|
|
|
- // 获取裁切后的图像 Data URL
|
|
|
- const croppedSrc = canvas.toDataURL();
|
|
|
+ // 使用 canvas.toBlob() 和 URL.createObjectURL() 生成图片 URL
|
|
|
+ const croppedSrc = await new Promise((resolve) => {
|
|
|
+ canvas.toBlob((blob) => {
|
|
|
+ const url = URL.createObjectURL(blob);
|
|
|
+ resolve(url);
|
|
|
+ }, "image/jpeg");
|
|
|
+ });
|
|
|
|
|
|
crops.push({
|
|
|
- src: croppedSrc, // 裁切后的图片 Data URL
|
|
|
+ src: croppedSrc, // 裁切后的图片 URL
|
|
|
originalUrl: originalUrl,
|
|
|
originalDimensions: originalDim,
|
|
|
cropParams: cropParams, // 裁切区域在原图的像素坐标和尺寸
|