diff options
| author | かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> | 2025-10-20 15:05:23 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-20 15:05:23 +0900 |
| commit | 8714945ec9deb88e1af6164b9290c9cf7e633aab (patch) | |
| tree | acd0db676544c524e7b6ace0c36ae51c376bb20f /packages/frontend/src/components | |
| parent | Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop (diff) | |
| download | misskey-8714945ec9deb88e1af6164b9290c9cf7e633aab.tar.gz misskey-8714945ec9deb88e1af6164b9290c9cf7e633aab.tar.bz2 misskey-8714945ec9deb88e1af6164b9290c9cf7e633aab.zip | |
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>
Diffstat (limited to 'packages/frontend/src/components')
| -rw-r--r-- | packages/frontend/src/components/MkWatermarkEditorDialog.Layer.vue | 24 | ||||
| -rw-r--r-- | packages/frontend/src/components/MkWatermarkEditorDialog.vue | 2 |
2 files changed, 25 insertions, 1 deletions
diff --git a/packages/frontend/src/components/MkWatermarkEditorDialog.Layer.vue b/packages/frontend/src/components/MkWatermarkEditorDialog.Layer.vue index 288293db3f..b34181e5cc 100644 --- a/packages/frontend/src/components/MkWatermarkEditorDialog.Layer.vue +++ b/packages/frontend/src/components/MkWatermarkEditorDialog.Layer.vue @@ -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 () => { diff --git a/packages/frontend/src/components/MkWatermarkEditorDialog.vue b/packages/frontend/src/components/MkWatermarkEditorDialog.vue index 0d0488d9bc..3b3f20d8d1 100644 --- a/packages/frontend/src/components/MkWatermarkEditorDialog.vue +++ b/packages/frontend/src/components/MkWatermarkEditorDialog.vue @@ -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, }; } |