Add border / frame
Add a solid colour border around an image, on your device.
Runs on your device. The file is never uploaded.
Add border / frame builds a canvas 10 pixels larger on each side, fills it with the hex colour you give, and copies your picture into the middle untouched. The result keeps its format and gains a -border suffix. The frame is one flat opaque rectangle, so there is no per-side width, no gradient and no rounded corner here.
Questions
How is the border added?
Outside the picture, not over it. A new canvas is created that is Border width pixels larger on every side, filled with your colour, and your image is copied into the middle untouched. So a 10 pixel border on a 800x600 photo gives you an 820x620 file with all of the original still visible. Nothing is cropped or covered.
What can I set?
Border width in pixels, default 10, which must be a whole number of 1 or more, otherwise it stops with "width must be a whole number of 1 or more". Border colour as a hex value, default #000000. And Quality 1 to 100, default 80, used for JPG and WebP only. There is no per-side width and no gradient.
Why was my colour rejected?
Because the colour parser takes six hex digits only, with or without a leading hash, so #000000 and 000000 both work. Names like red, three-digit shorthand like #f00, and rgb() values are all refused with a message beginning "invalid colour", telling you to use hex in the #rrggbb form. Case does not matter.
Can I get a rounded or transparent border?
Not here. The border is a solid, fully opaque rectangle of one colour. For rounded corners on the image itself, use Rounded corners, which outputs PNG with transparent corners. For a soft edge behind the picture, use Drop shadow. Those tools can be run one after another on the same file.
What do I get back?
One file per input, named with a -border suffix in the original format, such as print-border.png. Only JPG, PNG and WebP are read; other extensions stop with "only JPG, PNG and WebP are supported". Everything runs in a Web Worker on your device, and the re-encode drops any EXIF the original carried.