User loads image into cropping tool > previous focal point is shown > user adjusts focal point
User loads images into cropping tool > scrubs through thumbnails to verify focal points
User adds new image size to layout > user loads images into cropping tool > previous focal points are shown > user runs batch update to generate new crops for new image size
Why Focal Point and not crop size or page X/Y
the focal point is relative to the image
page XY is relative to the page which assumes a window size and the current app layout
crop size is independent, it uses (will use) focal point as the input
Options
Store in image filename
pros: simple, no separate dependency to manage, obvious where the data is stored, obvious when a change has been made (new git commit), easy to locate similar image if links break (only part of the file name has changed), can visually diff different focal point options, does not change Date Modified
cons: changing the focal point breaks image links in Markdown, need to locate new image to link, need to rescan Markdown files when focal points changed (using current system of batch cropping), confusing if different focal points required for different projects
Store each focal point in a separate text file (dot, csv, json etc)
pros: easy to manage
cons: relatively easy to delete, or separate from image because I forget what it's for, dot files less invasive but invisible in some applications
Store multiple focal points in a separate text file (dot, csv, json etc)
pros: relatively easy to manage
cons: relatively easy to delete, or separate from image because I forget what it's for, dot files less invasive but invisible in some applications, some focal point information would become redundant if images were moved around
Store in image EXIF
pros: self contained, no separate dependency to manage
cons: requires a JS plugin, easy to confused visually duplicate images and delete the wrong one, risk of corrupting other exif data
Use query parameter
pros: how Imgix works
cons: requires more work to update Markdown files, requires copy and paste of code from cropping tool
Scenarios
Why Focal Point and not crop size or page X/Y
Options
Store in image filename
Store each focal point in a separate text file (dot, csv, json etc)
Store multiple focal points in a separate text file (dot, csv, json etc)
Store in image EXIF
Use query parameter