|
@@ -6,6 +6,7 @@ import useMainStore from '@/store/main'
|
|
|
import { useRoute } from 'vue-router'
|
|
|
import analyze from 'rgbaster'
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
+import bus from '@/utils/bus'
|
|
|
export type RGBA = number[]
|
|
|
|
|
|
export type Point = [number, number]
|
|
@@ -89,13 +90,14 @@ const autoLoadImage = (url: any, errorNum: number, rs?: any, rj?: any) => {
|
|
|
img.onerror = () => {
|
|
|
console.log('img error')
|
|
|
if (errorNum == 3) {
|
|
|
+ dynamicMessage?.close()
|
|
|
ElMessage.error('图片渲染失败:' + url)
|
|
|
rj ? rj() : reject()
|
|
|
} else {
|
|
|
if (errorNum == 0) {
|
|
|
dynamicMessage = ElMessage.warning('正在加载图片...')
|
|
|
}
|
|
|
- autoLoadImage(url, ++errorNum, resolve, reject)
|
|
|
+ autoLoadImage(url, ++errorNum, rs ? rs : resolve, rj ? rj : reject)
|
|
|
}
|
|
|
}
|
|
|
})
|
|
@@ -176,6 +178,9 @@ export const useSetImgBg = (option: Ref<SetImgBgOption>, frontColor?: Ref<string
|
|
|
resolve(resultImg)
|
|
|
})
|
|
|
.catch(() => {
|
|
|
+ drawing.value = false
|
|
|
+ dataUrl.value = ''
|
|
|
+ imgLoading.value = false
|
|
|
reject()
|
|
|
})
|
|
|
})
|
|
@@ -210,29 +215,28 @@ export const useSetImgBg = (option: Ref<SetImgBgOption>, frontColor?: Ref<string
|
|
|
dataUrl.value = ''
|
|
|
return
|
|
|
}
|
|
|
- initImage({ image: opt.image, frontColor, setFrontColor })
|
|
|
- .then((image) => {
|
|
|
- if (!image) return
|
|
|
- createImageBitmap(image).then((imageBitMap) => {
|
|
|
- imageWorker.postMessage(
|
|
|
- {
|
|
|
- type: 'init',
|
|
|
- imageBitMap,
|
|
|
- basePoint: opt.basePoint,
|
|
|
- enableSharpen: opt.enableSharpen,
|
|
|
- distance: opt.distance,
|
|
|
- scale: opt.scale,
|
|
|
- rotate: opt.rotate,
|
|
|
- },
|
|
|
- [imageBitMap]
|
|
|
- )
|
|
|
- })
|
|
|
- })
|
|
|
- .catch((err: any) => {
|
|
|
- drawing.value = false
|
|
|
- dataUrl.value = ''
|
|
|
- console.log('initImage catch err')
|
|
|
+ initImage({ image: opt.image, frontColor, setFrontColor }).then((image) => {
|
|
|
+ if (!image) return
|
|
|
+ createImageBitmap(image).then((imageBitMap) => {
|
|
|
+ imageWorker.postMessage(
|
|
|
+ {
|
|
|
+ type: 'init',
|
|
|
+ imageBitMap,
|
|
|
+ basePoint: opt.basePoint,
|
|
|
+ enableSharpen: opt.enableSharpen,
|
|
|
+ distance: opt.distance,
|
|
|
+ scale: opt.scale,
|
|
|
+ rotate: opt.rotate,
|
|
|
+ },
|
|
|
+ [imageBitMap]
|
|
|
+ )
|
|
|
})
|
|
|
+ })
|
|
|
+ // .catch((err: any) => {
|
|
|
+ // drawing.value = false
|
|
|
+ // dataUrl.value = ''
|
|
|
+ // console.log('initImage catch err')
|
|
|
+ // })
|
|
|
})
|
|
|
},
|
|
|
{ immediate: true }
|