Online Batch Image Brightness and Contrast Tool
Adjust brightness and contrast for up to 30 images locally. Compare each preview and download PNG files at the original dimensions.
Start using
Online Batch Image Brightness and Contrast Tool
Batch brightness-and-contrast adjustment for up to 30 selected images. The same two numeric settings apply to every image: Brightness defaults to 10% and Contrast to 20%, both with displayed bounds -100..100. Zero for both leaves RGB unchanged.
For each RGB channel, contrast is applied first around 128 using f=259*(contrast+255)/(255*(259-contrast)) and c1=f*(c-128)+128. Brightness then adds 255*brightness/100. The final channel is clamped and byte-rounded; applying the steps in reverse would produce a different result.
Verified pixel example: RGB(100,160,240) with brightness 20 and contrast 25 becomes RGB(145,218,255). The blue highlight clips. Positive contrast expands distance from 128, while brightness shifts channels; these controls are not substitutes for one another.
Worked batch example: load one low-contrast indoor image and one outdoor image, choose brightness 10 and contrast 20, then Generate. Both receive exactly those values and keep their own original dimensions. Inspect each preview separately because a shared adjustment can improve one image while clipping another.
Each input must have an image MIME type, be at most 25 MiB and decode to at most 24,000,000 pixels. The selected batch is limited to 100 MiB and 40,000,000 decoded pixels; selecting more than 30 files rejects the whole batch.
Every result is browser-encoded PNG and is named from the source base name plus -brightContrast.png. Download all starts separate downloads about 180 ms apart; it does not create a ZIP, preserve the source format or provide an output-format selector.
Processing is local in the browser and Generate must be pressed again after settings change. This is a global decoded-raster RGB transform, not RAW exposure recovery, local masking, histogram auto-correction or sharpening. Clipped detail cannot be restored by merely reversing the signs, so retain the originals.
Every Generate recalculates from the currently uploaded source, rather than adding another adjustment to the previous preview. Set both values to 0 and generate to restore the decoded source RGB. If you upload an already clipped export as the new source, its lost detail cannot be recovered by reversing the signs.
Processing takes place locally in your browser.