|
@@ -45,7 +45,7 @@ export async function loadImage(url: string): Promise<HTMLImageElement> {
|
|
|
|
|
|
// 存放当前task的切片图的dataur
|
|
|
const weakedMapDataUrls = new WeakMap<Object, Map<string, string>>();
|
|
|
-export function getDataUrlForSliceConfig(
|
|
|
+export async function getDataUrlForSliceConfig(
|
|
|
image: HTMLImageElement,
|
|
|
sliceConfig: PictureSlice,
|
|
|
maxSliceWidth: number,
|
|
@@ -86,7 +86,12 @@ export function getDataUrlForSliceConfig(
|
|
|
// console.log(canvas.toDataURL());
|
|
|
|
|
|
// 如果用toBlob,则产生异步,而且URL.createObjectURL还会需要手动释放
|
|
|
- const dataurl = canvas.toDataURL();
|
|
|
+ // const dataurl = canvas.toDataURL();
|
|
|
+ const blob = await new Promise((res) => {
|
|
|
+ canvas.toBlob(res);
|
|
|
+ });
|
|
|
+ const dataurl = URL.createObjectURL(blob);
|
|
|
+ // console.log(dataurl);
|
|
|
// if (store.currentTask) {
|
|
|
// let dataUrlsCache = weakedMapDataUrls.get(store.currentTask);
|
|
|
// if (!dataUrlsCache) {
|
|
@@ -99,7 +104,7 @@ export function getDataUrlForSliceConfig(
|
|
|
return dataurl;
|
|
|
}
|
|
|
|
|
|
-export function getDataUrlForSplitConfig(
|
|
|
+export async function getDataUrlForSplitConfig(
|
|
|
image: HTMLImageElement,
|
|
|
config: [number, number],
|
|
|
maxSliceWidth: number,
|
|
@@ -138,7 +143,11 @@ export function getDataUrlForSplitConfig(
|
|
|
);
|
|
|
|
|
|
// 如果用toBlob,则产生异步,而且URL.createObjectURL还会需要手动释放
|
|
|
- const dataurl = canvas.toDataURL();
|
|
|
+ // const dataurl = canvas.toDataURL();
|
|
|
+ const blob = await new Promise((res) => {
|
|
|
+ canvas.toBlob(res);
|
|
|
+ });
|
|
|
+ const dataurl = URL.createObjectURL(blob);
|
|
|
// if (store.currentTask) {
|
|
|
// let dataUrlsCache = weakedMapDataUrls.get(store.currentTask);
|
|
|
// if (!dataUrlsCache) {
|