About EnhancePic

This site does one operation: it measures a photograph and corrects the whole frame at once. That is the entire scope, and everything about the way it is built follows from keeping it that narrow.

Why the numbers are on screen

Most automatic correction is a button that says “enhanced” afterwards. That is a claim nobody can check, and it trains people either to trust it blindly or to stop using it. The panel here prints the exposure change in stops, the white balance change in kelvin, the range it found and the range it claimed, and the amount of every other stage — because the same pass that decided those figures can be told it was wrong about any of them, and you cannot argue with a number you have not been shown.

It also means the tool can say nothing happened. A photograph that is already well exposed, already neutral and already using its full range comes back with a line saying so, rather than a quarter of a stop invented so the interface has something to report.

What it refuses to do

There are no brushes, no masks and no selections here, and there will not be. A global pass is a different kind of instrument from a local one: it reasons about the statistics of the whole frame, and every one of its decisions is only defensible because it applies everywhere. Adding a brush would not extend this tool, it would replace it with a worse version of a different one.

The clarity control stops at forty for the same reason. Beyond that, local contrast becomes edge sharpening, which needs a radius, a threshold and a preview at full magnification to use responsibly — an instrument this page is not. Faces, blemishes, scratches, tears and removing things from a photograph are all outside the line as well. Each of those is a real job and none of them is this one.

How it is put together

Everything happens inside the browser tab. The page is a static export with no server behind it and no route that could accept a file even if one were offered — the correction is a few hundred lines of arithmetic over pixel buffers, running in a background thread so that dragging a control does not freeze the page. Preview and export run the identical code at two different sizes, which is the only way to promise that the file you save is the one you approved.

It is built and maintained by the same small group behind a family of single-purpose picture tools. We would rather ship one page that does one thing well enough to explain itself than one page that does eleven things and explains none of them.

What we are still unsure about

Two things, stated plainly because they are genuinely open. The first is where the clarity cap belongs: forty is a judgement that sounds right and has not been tested against a fixed set of photographs, and it may well need to change with image size. The second is whether backing off automatically on night photographs is a good idea at all — it is excellent when the detection is correct and irritating when it is not, and the simpler alternative of running the full pass and leaving Strength to you may turn out to be better.

Under both of those sits a plainer thing worth telling you. Every threshold in the automatic pass — the window where brightness is left alone, how much two disagreeing colour estimates are trusted, the ceiling on how far one channel may be pushed — was settled against test images drawn in code, not against photographs. There were none where this was written, and no browser to look at one in. The engine is held in place by a suite of assertions over those drawn images, and they check direction, bounds, repeatability and that a well-exposed frame is left alone; none of them can tell you whether the result looks right on a picture of your kitchen.

That is a statement about the evidence, not a warning about the arithmetic — the measurements are the ordinary ones and the stages do what they say. But the constants in front of them are a first estimate rather than a tested one, which is the real reason every figure is printed on screen and every control is left open. If a number is wrong for your photograph you will be able to see that it is wrong, and moving it is not a workaround.