|
@@ -171,6 +171,7 @@ export default defineComponent({
|
|
|
|
|
|
|
|
const { addHistorySnapshot } = useHistorySnapshot()
|
|
const { addHistorySnapshot } = useHistorySnapshot()
|
|
|
|
|
|
|
|
|
|
+ // 设置滤镜
|
|
|
const updateFilter = (filter: FilterOption, value: number) => {
|
|
const updateFilter = (filter: FilterOption, value: number) => {
|
|
|
const originFilters = handleElement.value.filters || {}
|
|
const originFilters = handleElement.value.filters || {}
|
|
|
const filters = { ...originFilters, [filter.key]: `${value}${filter.unit}` }
|
|
const filters = { ...originFilters, [filter.key]: `${value}${filter.unit}` }
|
|
@@ -179,20 +180,22 @@ export default defineComponent({
|
|
|
addHistorySnapshot()
|
|
addHistorySnapshot()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 打开自由裁剪
|
|
|
const clipImage = () => {
|
|
const clipImage = () => {
|
|
|
store.commit(MutationTypes.SET_CLIPING_IMAGE_ELEMENT_ID, handleElement.value.id)
|
|
store.commit(MutationTypes.SET_CLIPING_IMAGE_ELEMENT_ID, handleElement.value.id)
|
|
|
clipPanelVisible.value = false
|
|
clipPanelVisible.value = false
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 获取原始图片的位置大小
|
|
|
const getImageElementDataBeforeClip = () => {
|
|
const getImageElementDataBeforeClip = () => {
|
|
|
- // 图片当前宽高位置、裁剪范围
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 图片当前的位置大小和裁剪范围
|
|
|
const imgWidth = handleElement.value.width
|
|
const imgWidth = handleElement.value.width
|
|
|
const imgHeight = handleElement.value.height
|
|
const imgHeight = handleElement.value.height
|
|
|
const imgLeft = handleElement.value.left
|
|
const imgLeft = handleElement.value.left
|
|
|
const imgTop = handleElement.value.top
|
|
const imgTop = handleElement.value.top
|
|
|
const originClipRange = handleElement.value.clip ? handleElement.value.clip.range : [[0, 0], [100, 100]]
|
|
const originClipRange = handleElement.value.clip ? handleElement.value.clip.range : [[0, 0], [100, 100]]
|
|
|
|
|
|
|
|
- // 图片原本未裁剪过时的宽高位置
|
|
|
|
|
const originWidth = imgWidth / ((originClipRange[1][0] - originClipRange[0][0]) / 100)
|
|
const originWidth = imgWidth / ((originClipRange[1][0] - originClipRange[0][0]) / 100)
|
|
|
const originHeight = imgHeight / ((originClipRange[1][1] - originClipRange[0][1]) / 100)
|
|
const originHeight = imgHeight / ((originClipRange[1][1] - originClipRange[0][1]) / 100)
|
|
|
const originLeft = imgLeft - originWidth * (originClipRange[0][0] / 100)
|
|
const originLeft = imgLeft - originWidth * (originClipRange[0][0] / 100)
|
|
@@ -207,6 +210,7 @@ export default defineComponent({
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 预设裁剪
|
|
|
const presetImageClip = (shape: string, ratio = 0) => {
|
|
const presetImageClip = (shape: string, ratio = 0) => {
|
|
|
const {
|
|
const {
|
|
|
originClipRange,
|
|
originClipRange,
|
|
@@ -216,7 +220,7 @@ export default defineComponent({
|
|
|
originTop,
|
|
originTop,
|
|
|
} = getImageElementDataBeforeClip()
|
|
} = getImageElementDataBeforeClip()
|
|
|
|
|
|
|
|
- // 设置形状和纵横比
|
|
|
|
|
|
|
+ // 纵横比裁剪(形状固定为矩形)
|
|
|
if (ratio) {
|
|
if (ratio) {
|
|
|
const imageRatio = originHeight / originWidth
|
|
const imageRatio = originHeight / originWidth
|
|
|
|
|
|
|
@@ -243,7 +247,7 @@ export default defineComponent({
|
|
|
},
|
|
},
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
- // 仅设置形状(维持目前的裁剪范围)
|
|
|
|
|
|
|
+ // 形状裁剪(保持当前裁剪范围)
|
|
|
else {
|
|
else {
|
|
|
store.commit(MutationTypes.UPDATE_ELEMENT, {
|
|
store.commit(MutationTypes.UPDATE_ELEMENT, {
|
|
|
id: handleElement.value.id,
|
|
id: handleElement.value.id,
|
|
@@ -256,6 +260,7 @@ export default defineComponent({
|
|
|
addHistorySnapshot()
|
|
addHistorySnapshot()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 替换图片(保持当前的样式)
|
|
|
const replaceImage = (files: File[]) => {
|
|
const replaceImage = (files: File[]) => {
|
|
|
const imageFile = files[0]
|
|
const imageFile = files[0]
|
|
|
if (!imageFile) return
|
|
if (!imageFile) return
|
|
@@ -266,6 +271,7 @@ export default defineComponent({
|
|
|
addHistorySnapshot()
|
|
addHistorySnapshot()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 重置图片:清除全部样式
|
|
|
const resetImage = () => {
|
|
const resetImage = () => {
|
|
|
if (handleElement.value.clip) {
|
|
if (handleElement.value.clip) {
|
|
|
const {
|
|
const {
|
|
@@ -293,6 +299,7 @@ export default defineComponent({
|
|
|
addHistorySnapshot()
|
|
addHistorySnapshot()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 将图片设置为背景
|
|
|
const setBackgroundImage = () => {
|
|
const setBackgroundImage = () => {
|
|
|
const background = {
|
|
const background = {
|
|
|
...currentSlide.value.background,
|
|
...currentSlide.value.background,
|