浏览代码

fix slice image index bug

Michael Wang 4 年之前
父节点
当前提交
3c68fc9049
共有 2 个文件被更改,包括 4 次插入9 次删除
  1. 2 4
      src/features/mark/CommonMarkBody.vue
  2. 2 5
      src/utils/utils.ts

+ 2 - 4
src/features/mark/CommonMarkBody.vue

@@ -136,13 +136,11 @@ export default defineComponent({
       if (!store.currentTask) return;
 
       const images = [];
-      const urls = [];
       // 必须要先加载一遍,把“选择整图”的宽高重置后,再算总高度
       for (const sliceConfig of store.currentTask.sliceConfig) {
         const url = store.currentTask.sliceUrls[sliceConfig.i - 1];
         const image = await loadImage(url);
-        images.push(image);
-        urls.push(url);
+        images[sliceConfig.i] = image;
         if (sliceConfig.w === 0 && sliceConfig.h === 0) {
           // 选择整图时,w/h 为0
           sliceConfig.w = image.naturalWidth;
@@ -165,7 +163,7 @@ export default defineComponent({
         accumBottomHeight += sliceConfig.h;
         const url = store.currentTask.sliceUrls[sliceConfig.i - 1];
         const indexInSliceUrls = sliceConfig.i;
-        const image = images[indexInSliceUrls - 1];
+        const image = images[sliceConfig.i];
 
         const dataUrl = (await getDataUrlForSliceConfig(
           image,

+ 2 - 5
src/utils/utils.ts

@@ -164,15 +164,13 @@ export async function preDrawImage(_currentTask: Task) {
   const hasSliceConfig = store.currentTask?.sliceConfig?.length;
 
   const images = [];
-  const urls = [];
 
   if (hasSliceConfig) {
     // 必须要先加载一遍,把“选择整图”的宽高重置后,再算总高度
     for (const sliceConfig of _currentTask.sliceConfig) {
       const url = _currentTask.sliceUrls[sliceConfig.i - 1];
       const image = await loadImage(url);
-      images.push(image);
-      urls.push(url);
+      images[sliceConfig.i] = image;
       if (sliceConfig.w === 0 && sliceConfig.h === 0) {
         // 选择整图时,w/h 为0
         sliceConfig.w = image.naturalWidth;
@@ -185,8 +183,7 @@ export async function preDrawImage(_currentTask: Task) {
     // 用来保存sliceImage在整个图片容器中(不包括image-seperator)的高度范围
     for (const sliceConfig of _currentTask.sliceConfig) {
       const url = _currentTask.sliceUrls[sliceConfig.i - 1];
-      const indexInSliceUrls = sliceConfig.i;
-      const image = images[indexInSliceUrls - 1];
+      const image = images[sliceConfig.i];
 
       (await getDataUrlForSliceConfig(
         image,