Photo canvas
Upload your photo
Canvas is forgiving. 100 dpi at print size looks great. We check your photo against the frame size and edge style you picked.
Try it
- Upload the portrait photo on the 30 × 40 frame, passes, canvas is forgiving.
- Pick 60 × 90 with gallery wrap: two findings, in plain language; resolution and missing wrap allowance.
- Switch to mirror wrap and the bleed requirement disappears.
Sample files
A consumer photo product with a hidden physical requirement: gallery wrap folds the photo around the frame, which needs 38 mm of extra image on every side. Mirror wrap needs none. The check knows which you picked.
Change any option and Filecheck re-checks the same file without
re-uploading. Add ?fcdebug=1 to the URL to see what
it is told about your selections.
How this page is wired
The Filecheck element owns the page; the Print Options form reacts over its public Page API. The blueprint (one JSON document) still declares both: the options with their prices, and the inline Filecheck workflow this page runs.
intake.on('status', s => {
po.setFile(factsOf(s)); // facts reprice the form
s.canProceed ? po.releaseHold('filecheck')
: po.addHold('filecheck');
});
po.addEventListener('change', e =>
intake.setContext(contextOf(e))); // selections re-check the file