Browse Source

精确type

Michael Wang 3 years ago
parent
commit
0dea5b639a
2 changed files with 22 additions and 22 deletions
  1. 8 8
      src/features/mark/CommonMarkBody.vue
  2. 14 14
      src/utils/utils.ts

+ 8 - 8
src/features/mark/CommonMarkBody.vue

@@ -209,12 +209,12 @@ async function processSliceConfig() {
     const indexInSliceUrls = sliceConfig.i;
     const indexInSliceUrls = sliceConfig.i;
     const image = images[sliceConfig.i];
     const image = images[sliceConfig.i];
 
 
-    const dataUrl = (await getDataUrlForSliceConfig(
+    const dataUrl = await getDataUrlForSliceConfig(
       image,
       image,
       sliceConfig,
       sliceConfig,
       maxSliceWidth,
       maxSliceWidth,
       url
       url
-    )) as string;
+    );
 
 
     let trackLists = [] as Array<Track>;
     let trackLists = [] as Array<Track>;
     if (useMarkResult) {
     if (useMarkResult) {
@@ -241,9 +241,9 @@ async function processSliceConfig() {
       (t) => t.offsetIndex === indexInSliceUrls
       (t) => t.offsetIndex === indexInSliceUrls
     );
     );
 
 
-    const sliceImageRendered = await getImageUsingDataUrl(dataUrl);
+    const sliceImageRendered = await getImageUsingDataUrl(dataUrl!);
     tempSliceImagesWithTrackList.push({
     tempSliceImagesWithTrackList.push({
-      url: dataUrl,
+      url: dataUrl!,
       indexInSliceUrls: sliceConfig.i,
       indexInSliceUrls: sliceConfig.i,
       // 通过positionY来定位是第几张slice的还原,并过滤出相应的track
       // 通过positionY来定位是第几张slice的还原,并过滤出相应的track
       trackList: thisImageTrackList.filter(
       trackList: thisImageTrackList.filter(
@@ -307,12 +307,12 @@ async function processSplitConfig() {
 
 
       accumBottomHeight += image.naturalHeight;
       accumBottomHeight += image.naturalHeight;
 
 
-      const dataUrl = (await getDataUrlForSplitConfig(
+      const dataUrl = await getDataUrlForSplitConfig(
         image,
         image,
         config,
         config,
         maxSliceWidth,
         maxSliceWidth,
         url
         url
-      )) as string;
+      );
 
 
       let trackLists = [] as Array<Track>;
       let trackLists = [] as Array<Track>;
       if (useMarkResult) {
       if (useMarkResult) {
@@ -339,9 +339,9 @@ async function processSplitConfig() {
       const thisImageTagList = tagLists.filter(
       const thisImageTagList = tagLists.filter(
         (t) => t.offsetIndex === indexInSliceUrls
         (t) => t.offsetIndex === indexInSliceUrls
       );
       );
-      const sliceImageRendered = await getImageUsingDataUrl(dataUrl);
+      const sliceImageRendered = await getImageUsingDataUrl(dataUrl!);
       tempSliceImagesWithTrackList.push({
       tempSliceImagesWithTrackList.push({
-        url: dataUrl,
+        url: dataUrl!,
         indexInSliceUrls: store.currentTask.sliceUrls.indexOf(url) + 1,
         indexInSliceUrls: store.currentTask.sliceUrls.indexOf(url) + 1,
         trackList: thisImageTrackList.filter(
         trackList: thisImageTrackList.filter(
           (t) =>
           (t) =>

+ 14 - 14
src/utils/utils.ts

@@ -68,9 +68,10 @@ export async function getDataUrlForSliceConfig(
   const ctx = canvas.getContext("2d");
   const ctx = canvas.getContext("2d");
   if (!ctx) {
   if (!ctx) {
     console.log('canvas.getContext("2d") error');
     console.log('canvas.getContext("2d") error');
+    throw "canvas ctx error";
   }
   }
   // drawImage 画图软件透明色
   // drawImage 画图软件透明色
-  ctx?.drawImage(
+  ctx.drawImage(
     image,
     image,
     sliceConfig.x,
     sliceConfig.x,
     sliceConfig.y,
     sliceConfig.y,
@@ -139,9 +140,10 @@ export async function getDataUrlForSplitConfig(
   const ctx = canvas.getContext("2d");
   const ctx = canvas.getContext("2d");
   if (!ctx) {
   if (!ctx) {
     console.log('canvas.getContext("2d") error');
     console.log('canvas.getContext("2d") error');
+    throw "canvas ctx error";
   }
   }
   // drawImage 画图软件透明色
   // drawImage 画图软件透明色
-  ctx?.drawImage(
+  ctx.drawImage(
     image,
     image,
     image.naturalWidth * start,
     image.naturalWidth * start,
     0,
     0,
@@ -194,12 +196,11 @@ export async function preDrawImage(_currentTask: Task) {
       const url = _currentTask.sliceUrls[sliceConfig.i - 1];
       const url = _currentTask.sliceUrls[sliceConfig.i - 1];
       const image = images[sliceConfig.i];
       const image = images[sliceConfig.i];
 
 
-      (await getDataUrlForSliceConfig(
-        image,
-        sliceConfig,
-        maxSliceWidth,
-        url
-      )) as string;
+      try {
+        await getDataUrlForSliceConfig(image, sliceConfig, maxSliceWidth, url);
+      } catch (error) {
+        console.log("preDrawImage failed: ", error);
+      }
     }
     }
   } else {
   } else {
     for (const url of _currentTask.sliceUrls) {
     for (const url of _currentTask.sliceUrls) {
@@ -220,12 +221,11 @@ export async function preDrawImage(_currentTask: Task) {
         const indexInSliceUrls = _currentTask.sliceUrls.indexOf(url) + 1;
         const indexInSliceUrls = _currentTask.sliceUrls.indexOf(url) + 1;
         const image = images[indexInSliceUrls - 1];
         const image = images[indexInSliceUrls - 1];
 
 
-        (await getDataUrlForSplitConfig(
-          image,
-          config,
-          maxSliceWidth,
-          url
-        )) as string;
+        try {
+          await getDataUrlForSplitConfig(image, config, maxSliceWidth, url);
+        } catch (error) {
+          console.log("preDrawImage failed: ", error);
+        }
       }
       }
     }
     }
   }
   }