Problem / Limitation
Currently, the "New canvas" dialog only accepts raw pixel values (px) and has no concept of resolution (DPI / PPI). If a user attempts to enter a physical dimension like 10cm or 5in, it triggers the error:
"Enter whole numbers from 1 to 30,000 pixels."
For print workflows and graphic design, working with physical dimensions (inches, cm, mm) and print resolutions (e.g., 300 DPI vs 72 PPI for web) is essential.
Proposed Solution
- Unit Selector: Allow users to select units (
px, in, cm, mm) next to Width and Height.
- Resolution (DPI) Field: Add a Resolution input (defaulting to 72 or 300 pixels/inch) that computes the appropriate pixel dimensions behind the scenes.
- Smart Input Parsing: If a user types
10cm or 4in directly into the dimension field, automatically recognize the unit and convert it to pixels based on the active resolution rather than rejecting it as an invalid integer.
Context
In NewCanvasSheet.swift, dimensions are currently restricted to static px and validated via CanvasDocument.validDimension as direct integers. Adding physical unit conversion and DPI metadata would significantly improve the workflow for print designers.
Problem / Limitation
Currently, the "New canvas" dialog only accepts raw pixel values (
px) and has no concept of resolution (DPI / PPI). If a user attempts to enter a physical dimension like10cmor5in, it triggers the error:For print workflows and graphic design, working with physical dimensions (inches, cm, mm) and print resolutions (e.g., 300 DPI vs 72 PPI for web) is essential.
Proposed Solution
px,in,cm,mm) next to Width and Height.10cmor4indirectly into the dimension field, automatically recognize the unit and convert it to pixels based on the active resolution rather than rejecting it as an invalid integer.Context
In
NewCanvasSheet.swift, dimensions are currently restricted to staticpxand validated viaCanvasDocument.validDimensionas direct integers. Adding physical unit conversion and DPI metadata would significantly improve the workflow for print designers.