cd9cf91ef0a14ab4fe3dfc14951ce6fe7dba1bcc
Frame-based exports (GIF, APNG, APNG-preview) accept an optional target output size. ExportDialog exposes it as a single width input above the three image-export rows; height is derived live from the scene's aspect ratio so the user can't squash the output. The preview HTML mirrors the target dims so a downsized export previews at its real pixel size. renderFrames takes targetWidth / targetHeight, sizes its canvas accordingly and scales the ctx once; drawSceneFrame's own save/restore preserves the transform across frames, including the top-level-mask offscreen compositing path. Target width on dialog open is inherited from the current scene.canvas — watched via modelValue so resizing the stage and reopening the dialog picks up the new size (instead of the stale value from whenever ExportDialog first instantiated). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Languages
TypeScript
60%
Vue
35.4%
JavaScript
3.4%
HTML
0.9%
CSS
0.2%
Other
0.1%