From 2257ca2e6f9f8834880ea9bab4355c168ee6c33b Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Thu, 5 Feb 2026 12:53:56 +0100 Subject: make storage versioning per-project + few other refactors --- apps/web/src/services/renderer/nodes/image-node.ts | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'apps/web/src/services/renderer/nodes/image-node.ts') diff --git a/apps/web/src/services/renderer/nodes/image-node.ts b/apps/web/src/services/renderer/nodes/image-node.ts index 2a684d5f..5405b60b 100644 --- a/apps/web/src/services/renderer/nodes/image-node.ts +++ b/apps/web/src/services/renderer/nodes/image-node.ts @@ -1,10 +1,20 @@ import type { CanvasRenderer } from "../canvas-renderer"; import { BaseNode } from "./base-node"; -import type { BaseMediaNodeParams } from "./video-node"; const IMAGE_EPSILON = 1 / 1000; -export type ImageNodeParams = BaseMediaNodeParams; +export interface ImageNodeParams { + url: string; + duration: number; + timeOffset: number; + trimStart: number; + trimEnd: number; + x?: number; + y?: number; + width?: number; + height?: number; + opacity?: number; +} export class ImageNode extends BaseNode { private image?: HTMLImageElement; @@ -18,15 +28,12 @@ export class ImageNode extends BaseNode { private async load() { const image = new Image(); this.image = image; - const url = URL.createObjectURL(this.params.file); await new Promise((resolve, reject) => { image.onload = () => resolve(); image.onerror = () => reject(new Error("Image load failed")); - image.src = url; + image.src = this.params.url; }); - - URL.revokeObjectURL(url); } private getImageTime(time: number) { -- cgit v1.3.1