|
@@ -168,8 +168,8 @@ export async function getDataUrlForSplitConfig(
|
|
}
|
|
}
|
|
|
|
|
|
export async function preDrawImage(_currentTask: Task | undefined) {
|
|
export async function preDrawImage(_currentTask: Task | undefined) {
|
|
- console.log('preDrawImage=>curTask:',store.currentTask);
|
|
|
|
-
|
|
|
|
|
|
+ console.log("preDrawImage=>curTask:", store.currentTask);
|
|
|
|
+
|
|
if (!_currentTask?.libraryId) return;
|
|
if (!_currentTask?.libraryId) return;
|
|
|
|
|
|
let maxSliceWidth = 0; // 最大的裁切块宽度,图片容器以此为准
|
|
let maxSliceWidth = 0; // 最大的裁切块宽度,图片容器以此为准
|
|
@@ -192,11 +192,20 @@ export async function preDrawImage(_currentTask: Task | undefined) {
|
|
const url = _currentTask.sliceUrls[sliceConfig.i - 1];
|
|
const url = _currentTask.sliceUrls[sliceConfig.i - 1];
|
|
const image = await loadImage(url);
|
|
const image = await loadImage(url);
|
|
images[sliceConfig.i] = image;
|
|
images[sliceConfig.i] = image;
|
|
|
|
+ const { x, y, w, h } = sliceConfig;
|
|
|
|
+ x < 0 && (sliceConfig.x = 0);
|
|
|
|
+ y < 0 && (sliceConfig.y = 0);
|
|
if (sliceConfig.w === 0 && sliceConfig.h === 0) {
|
|
if (sliceConfig.w === 0 && sliceConfig.h === 0) {
|
|
// 选择整图时,w/h 为0
|
|
// 选择整图时,w/h 为0
|
|
sliceConfig.w = image.naturalWidth;
|
|
sliceConfig.w = image.naturalWidth;
|
|
sliceConfig.h = image.naturalHeight;
|
|
sliceConfig.h = image.naturalHeight;
|
|
}
|
|
}
|
|
|
|
+ if (x <= 1 && y <= 1 && w <= 1 && h <= 1) {
|
|
|
|
+ sliceConfig.x = image.naturalWidth * x;
|
|
|
|
+ sliceConfig.y = image.naturalHeight * y;
|
|
|
|
+ sliceConfig.w = image.naturalWidth * w;
|
|
|
|
+ sliceConfig.h = image.naturalHeight * h;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
maxSliceWidth = Math.max(..._currentTask.sliceConfig.map((v) => v.w));
|
|
maxSliceWidth = Math.max(..._currentTask.sliceConfig.map((v) => v.w));
|
|
@@ -245,8 +254,8 @@ export async function preDrawImage(_currentTask: Task | undefined) {
|
|
}
|
|
}
|
|
|
|
|
|
export async function preDrawImageHistory(_currentTask: Task | undefined) {
|
|
export async function preDrawImageHistory(_currentTask: Task | undefined) {
|
|
- console.log('preDrawImageHistory=>curTask:',store.currentTask);
|
|
|
|
-
|
|
|
|
|
|
+ console.log("preDrawImageHistory=>curTask:", store.currentTask);
|
|
|
|
+
|
|
if (!_currentTask?.libraryId) return;
|
|
if (!_currentTask?.libraryId) return;
|
|
|
|
|
|
let maxSliceWidth = 0; // 最大的裁切块宽度,图片容器以此为准
|
|
let maxSliceWidth = 0; // 最大的裁切块宽度,图片容器以此为准
|
|
@@ -269,11 +278,20 @@ export async function preDrawImageHistory(_currentTask: Task | undefined) {
|
|
const url = _currentTask.sliceUrls[sliceConfig.i - 1];
|
|
const url = _currentTask.sliceUrls[sliceConfig.i - 1];
|
|
const image = await loadImage(url);
|
|
const image = await loadImage(url);
|
|
images[sliceConfig.i] = image;
|
|
images[sliceConfig.i] = image;
|
|
|
|
+ const { x, y, w, h } = sliceConfig;
|
|
|
|
+ x < 0 && (sliceConfig.x = 0);
|
|
|
|
+ y < 0 && (sliceConfig.y = 0);
|
|
if (sliceConfig.w === 0 && sliceConfig.h === 0) {
|
|
if (sliceConfig.w === 0 && sliceConfig.h === 0) {
|
|
// 选择整图时,w/h 为0
|
|
// 选择整图时,w/h 为0
|
|
sliceConfig.w = image.naturalWidth;
|
|
sliceConfig.w = image.naturalWidth;
|
|
sliceConfig.h = image.naturalHeight;
|
|
sliceConfig.h = image.naturalHeight;
|
|
}
|
|
}
|
|
|
|
+ if (x <= 1 && y <= 1 && w <= 1 && h <= 1) {
|
|
|
|
+ sliceConfig.x = image.naturalWidth * x;
|
|
|
|
+ sliceConfig.y = image.naturalHeight * y;
|
|
|
|
+ sliceConfig.w = image.naturalWidth * w;
|
|
|
|
+ sliceConfig.h = image.naturalHeight * h;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
maxSliceWidth = Math.max(..._currentTask.sliceConfig.map((v) => v.w));
|
|
maxSliceWidth = Math.max(..._currentTask.sliceConfig.map((v) => v.w));
|
|
@@ -321,7 +339,6 @@ export async function preDrawImageHistory(_currentTask: Task | undefined) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
export function addFileServerPrefixToTask(rawTask: Task): Task {
|
|
export function addFileServerPrefixToTask(rawTask: Task): Task {
|
|
const newTask = JSON.parse(JSON.stringify(rawTask)) as Task;
|
|
const newTask = JSON.parse(JSON.stringify(rawTask)) as Task;
|
|
|
|
|