From 4ba18690d7abd7eea086bb59e6cbcc8ead9e121a Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Thu, 6 Nov 2025 20:25:17 +0900 Subject: feat(frontend): EXIFフレーム機能 (#16725) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * wip * wip * Update ImageEffector.ts * Update image-label-renderer.ts * Update image-label-renderer.ts * wip * Update image-label-renderer.ts * wip * wip * wip * wip * wip * wip * wip * Update use-uploader.ts * Update watermark.ts * wip * wu * wip * Update image-frame-renderer.ts * wip * wip * Update image-frame-renderer.ts * Create ImageCompositor.ts * Update ImageCompositor.ts * wip * wip * Update ImageEffector.ts * wip * Update use-uploader.ts * wip * wip * wip * wip * Update fxs.ts * wip * wip * wip * Update CHANGELOG.md * wip * wip * Update MkImageEffectorDialog.vue * Update MkImageEffectorDialog.vue * Update MkImageFrameEditorDialog.vue * Update use-uploader.ts * improve error handling * Update use-uploader.ts * 🎨 * wip * wip * lazy load * lazy load * wip * wip * wip --- .../utility/image-compositor-functions/invert.ts | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 packages/frontend/src/utility/image-compositor-functions/invert.ts (limited to 'packages/frontend/src/utility/image-compositor-functions/invert.ts') diff --git a/packages/frontend/src/utility/image-compositor-functions/invert.ts b/packages/frontend/src/utility/image-compositor-functions/invert.ts new file mode 100644 index 0000000000..f64e68034e --- /dev/null +++ b/packages/frontend/src/utility/image-compositor-functions/invert.ts @@ -0,0 +1,43 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import shader from './invert.glsl'; +import type { ImageEffectorUiDefinition } from '../image-effector/ImageEffector.js'; +import { defineImageCompositorFunction } from '@/lib/ImageCompositor.js'; +import { i18n } from '@/i18n.js'; + +export const fn = defineImageCompositorFunction<{ + r: boolean; + g: boolean; + b: boolean; +}>({ + shader, + main: ({ gl, u, params }) => { + gl.uniform1i(u.r, params.r ? 1 : 0); + gl.uniform1i(u.g, params.g ? 1 : 0); + gl.uniform1i(u.b, params.b ? 1 : 0); + }, +}); + +export const uiDefinition = { + name: i18n.ts._imageEffector._fxs.invert, + params: { + r: { + label: i18n.ts._imageEffector._fxProps.redComponent, + type: 'boolean', + default: true, + }, + g: { + label: i18n.ts._imageEffector._fxProps.greenComponent, + type: 'boolean', + default: true, + }, + b: { + label: i18n.ts._imageEffector._fxProps.blueComponent, + type: 'boolean', + default: true, + }, + }, +} satisfies ImageEffectorUiDefinition; -- cgit v1.2.3-freya