mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-05-04 14:16:03 +02:00
fix(frontend): ウォーターマーク配置のエフェクトが壊れている問題を修正 (#16662)
* fix(frontend): ウォーターマーク配置のエフェクトが壊れている問題を修正 * enhance: add settings for noBoundingBoxExpansion * Update Changelog * fix * perf: ウォーターマークのrepeatをWRAP属性で制御するように * fix: ウォーターマークをrepeatした際に回転や拡大縮小の中心が「位置」設定を考慮しないのを修正 * fix: ウォーターマークをrepeatした際にマージンが各ウォーターマークごとのマージンとなっていない問題を修正 * fix: リピートモード時の拡大縮小の原点が、アライメントの設定にかかわらず左上になる問題を修正 * enhance: preserveBoundingRect の翻訳文字を変更 * fix: remove description * fix * fix: 回転の向きが逆になっているのを修正 * fix: マージンは元画像の大きさに対する割合で算出するように * Update watermarkPlacement.ts --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
This commit is contained in:
@@ -65,6 +65,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||
<MkSwitch v-model="layer.repeat">
|
||||
<template #label>{{ i18n.ts._watermarkEditor.repeat }}</template>
|
||||
</MkSwitch>
|
||||
|
||||
<MkSwitch v-model="layerPreserveBoundingRect">
|
||||
<template #label>{{ i18n.ts._watermarkEditor.preserveBoundingRect }}</template>
|
||||
</MkSwitch>
|
||||
</template>
|
||||
|
||||
<template v-else-if="layer.type === 'image'">
|
||||
@@ -129,6 +133,10 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||
<MkSwitch v-model="layer.cover">
|
||||
<template #label>{{ i18n.ts._watermarkEditor.cover }}</template>
|
||||
</MkSwitch>
|
||||
|
||||
<MkSwitch v-model="layerPreserveBoundingRect">
|
||||
<template #label>{{ i18n.ts._watermarkEditor.preserveBoundingRect }}</template>
|
||||
</MkSwitch>
|
||||
</template>
|
||||
|
||||
<template v-else-if="layer.type === 'qr'">
|
||||
@@ -335,7 +343,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted } from 'vue';
|
||||
import { ref, onMounted, computed } from 'vue';
|
||||
import * as Misskey from 'misskey-js';
|
||||
import type { WatermarkPreset } from '@/utility/watermark.js';
|
||||
import { i18n } from '@/i18n.js';
|
||||
@@ -351,6 +359,20 @@ import { misskeyApi } from '@/utility/misskey-api.js';
|
||||
|
||||
const layer = defineModel<WatermarkPreset['layers'][number]>('layer', { required: true });
|
||||
|
||||
const layerPreserveBoundingRect = computed({
|
||||
get: () => {
|
||||
if (layer.value.type === 'text' || layer.value.type === 'image') {
|
||||
return !layer.value.noBoundingBoxExpansion;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
set: (v: boolean) => {
|
||||
if (layer.value.type === 'text' || layer.value.type === 'image') {
|
||||
layer.value.noBoundingBoxExpansion = !v;
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
const driveFile = ref<Misskey.entities.DriveFile | null>(null);
|
||||
const driveFileError = ref(false);
|
||||
onMounted(async () => {
|
||||
|
||||
@@ -90,6 +90,7 @@ function createTextLayer(): WatermarkPreset['layers'][number] {
|
||||
angle: 0,
|
||||
opacity: 0.75,
|
||||
repeat: false,
|
||||
noBoundingBoxExpansion: false,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -104,6 +105,7 @@ function createImageLayer(): WatermarkPreset['layers'][number] {
|
||||
angle: 0,
|
||||
opacity: 0.75,
|
||||
repeat: false,
|
||||
noBoundingBoxExpansion: false,
|
||||
cover: false,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user