Paste Overlays
Besides writing translations into text regions, typesetting often needs to place cut-out image assets on the page: hand-written characters, SFX, stamps, stickers, or background patches borrowed from another page. Text regions are a poor fit for that, so previously people composited such assets outside the editor and pasted the finished page back. The editor's paste overlay object covers this use case: drop an image asset (PNG/JPG/WebP/etc.) straight onto the canvas and edit its position, size, rotation, opacity and stacking independently, with the result persisted per page and baked into exports.
What it does
- Dropping supported image assets (PNG/JPG/WebP/BMP/TIFF/AVIF, etc.) creates a page-level overlay centered at the drop point, selected immediately; oversized assets (edge > 2048 px) are scaled down automatically.
- Once selected, editing follows the same habits as text regions: move / corner uniform resize / top rotation / hover cursors;
Ctrl+Wheelscales uniformly,Ctrl+C/Ctrl+Vcopy & paste,Deleteremoves,Ctrl+Zundoes. - Each change (move/resize/rotate/add/remove) is an undoable command.
- Overlays are persisted with the page (see Storage below) and restored when reopening; export composites them into the final image at the same position/size/orientation as shown on the canvas, below rendered text.
- Pages containing only overlays (no text regions) still export correctly, preserving transparency for transparent PNG assets.
Editing in the editor
Adding an overlay
- Open the editor and load a manga page.
- Drag an image from Explorer onto the canvas and release — it lands where you drop it.
- Alternatively copy an existing overlay by selecting it and pressing
Ctrl+C, then pressCtrl+Vto paste a copy at the mouse position.
Overlays and text regions do not interfere: clicking an overlay selects the overlay, clicking a text region selects the region; clicking empty canvas or a text region dismisses the overlay handles.
Editing the selected overlay
The selected overlay shows the same decorations as text regions:
- Dashed border marks the selection;
- Corner squares: drag to scale uniformly around the overlay center;
- Top ring: drag to rotate around the center;
- Hovering the corner/rotation handles switches the cursor to diagonal-resize / move, so the draggable areas are discoverable;
- Dragging the body moves the overlay;
Ctrl+Wheel= uniform scaling (same entry point as the text-region font-size wheel: with no region selected it applies to the overlay);Ctrl+C/Ctrl+V= copy / paste (overlay clipboard is independent from the region clipboard);Deleteremoves the selected overlay.
For shortcuts and focus rules see Shortcuts; canvas tools, selection, zoom and pan see Canvas tools and selection.
Saving and export behavior
Storage format
Overlays are stored alongside page regions in the page's *_translations.json:
"paste_overlays": [{
"id": "…",
"name": "…",
"z": 0, "visible": true, "opacity": 1.0,
"center_x": 0.0, "center_y": 0.0, // source-image pixel coordinates
"width": 0.0, "height": 0.0,
"rotation": 0.0, "flip_h": false, "flip_v": false,
"image": "<base64 PNG, RGBA>"
}]- Images are embedded as base64 PNG (RGBA), like
mask_raw/paint_overlay/stamp_overlay, so a page stays self-contained and portable; - Old page files without
paste_overlaysload fine (treated as empty); - Geometry is expressed in source-image pixels; the canvas preview and backend export share the same coordinate space.
Export and backend
- Editor "export" composites overlays in ascending
zorder over the base image with premultiplied-alpha source-over (no darkened or bleeding edges), below rendered text; - Pages with overlays but no text regions/mask export correctly, including RGBA output for transparent PNG assets;
- CLI/Web loading from disk JSON reads
paste_overlaysand materializes them so results match the desktop export.
Limitations and roadmap
- Overlays are edited as single objects for now (no multi-select/align/distribute); stacking is controlled by the
zfield; - Overlays and text regions use separate object types and selection state; unifying them fully (shared property panel, multi-select batch operations, common geometry-handle pipeline) would be a model-layer change and is open for discussion;
- Oversized or malformed project files are defensively skipped (including a pre-decode pixel-size check) to keep exports from exhausting memory.
