Image Grayscale
Make a photo grayscale with a clear brightness method and a transparency-preserving PNG.
This tool processes its input contents in your browser instead of sending them to a processing service. Page, asset and fixed usage-measurement requests are described on the Privacy page.
Convert a decoded photo to equal-RGB grayscale using linear-light luminance or a simple average, with local preview and PNG export.
How to use it
- 1Choose one still PNG/JPEG, or try the color example.
- 2Compare the original and automatic grayscale preview.
- 3Optionally switch between luminance and average methods.
- 4Download the PNG and optional method report.
Example
- Input
- Opaque red, green and blue pixels at full channel intensity.
- Output
- Default gray levels 127, 220 and 76; simple average gives 85 for all three.
Alpha is retained in the transform; browser export can round semi-transparent colors.
What happens to your data
Grayscale conversion uses only the photo's local decoded canvas pixels. The file and channel values are not posted to a service, placed in the address or saved in browser storage. Dimensions and the method appear only in the optional downloaded report, which excludes the source filename. Re-encoding changes file bytes and metadata even though the processing stays on the device.
Last updated November 2026
Turn a color photo into shades of gray, review it beside the original and download a full-dimension PNG. Choose one local JPEG or still PNG: the default grayscale result is prepared automatically. There is no account, upload or second Generate step. A small color example lets you compare the methods without choosing a personal photo.
Grayscale retains intermediate shades. It is different from converting a scan into strictly black and white pixels, which is the job of Image Threshold. This tool suits neutral illustrations, slide assets, document artwork and checking how colored regions look when their hue is removed.
How it works
The browser first decodes the supported image into 8-bit sRGB canvas pixels. The default method decodes each color channel to linear light, combines red, green and blue using weights 0.2126, 0.7152 and 0.0722, then encodes that luminance back into an sRGB gray channel. The resulting value is copied into R, G and B. Green contributes more than red and blue, so equally bright numeric channel values can produce different grays.
The optional simple average rounds (R + G + B) / 3 on the decoded channel values. It is easy to inspect, but does not model visual luminance. Method names describe the actual arithmetic; neither option is a calibrated simulation of a particular printer, ink, paper stock or viewer's vision. The displayed changed-pixel count includes only pixels with nonzero decoded alpha whose RGB values changed. Already-gray pixels may remain unchanged.
Decoded alpha is retained. The checkerboard is a preview background and is not painted into the downloaded PNG. Canvas uses premultiplied color internally, so partially transparent RGB values can round during export, and invisible RGB under alpha zero can be normalized. Dimensions and browser-decoded orientation are kept; source color profiles may be converted and original EXIF/other metadata is not preserved. The PNG uses gray RGB pixels, but this is not a promise of a single-channel file encoding, smaller size or lossless original bytes.
A guarded header check precedes decoding. One file may be at most 20 MiB, 16 million decoded pixels and 8,192 pixels per side. Animated PNG, 16-bit PNG, SVG, GIF, WebP and damaged or unsupported images are refused instead of being silently treated as ordinary photos. Pixel work yields between chunks. Cancel, Clear, replacement and changed settings invalidate the old result so a delayed conversion cannot overwrite the current choice. Object URLs are released when replaced or when the component unmounts.
Worked example: Red is not the same gray as green
- Input
- Opaque sRGB pixels: (255,0,0), (0,255,0), (0,0,255).
- Result
- Default linear-light luminance produces approximately gray values 127, 220 and 76 respectively. Simple average produces 85 for each.
Values are rounded to 8-bit channels. Exported PNG pixels are independently decoded and checked, with partial-alpha rounding treated separately.
Common use cases
- Making a neutral photo for a presentation
- Preparing grayscale artwork with a transparent background
- Comparing equal-average colors against luminance-based gray
- Keeping a readable record of the chosen conversion method
Frequently asked questions
Is this black and white or grayscale?+
It makes shades of gray. R, G and B are equal for each processed pixel, while their value may be any integer from 0 to 255. Use Image Threshold when you need only the two colors black and white.
Why do the two methods look different?+
Simple average weights the three encoded channels equally. The default works in linear light and weights green more heavily. A green patch therefore remains lighter than a blue patch even when both use a channel value of 255.
Will my transparent background remain transparent?+
The decoded alpha channel is retained. Semi-transparent colors may differ by a rounding step after canvas re-encoding, and fully transparent RGB is not a meaningful visible color. The checkerboard is not part of the saved image.
Does PNG preserve every original detail and metadata field?+
It preserves the processed canvas dimensions and pixels within browser encoding behavior. It does not preserve the original compressed bytes, EXIF or every color-profile feature. A large photo converted from JPEG to PNG can grow substantially.
Can I convert a video or animated image?+
No. This bounded tool accepts one still JPEG or supported 8-bit PNG. Animation and high-bit-depth PNG require an explicit separate conversion rather than silently dropping frames or precision.
Does the photo leave my device?+
The image is decoded, transformed and encoded locally. The settings report contains dimensions and the selected arithmetic, not the original filename or pixel content. Nothing is uploaded or put into persistent browser storage by this conversion.
Related tools
Image Color Inverter
Invert decoded image colors locally while retaining transparency, then download a PNG.
Image Threshold
Convert an image to two-tone black and white, with a threshold and explicit alpha controls.
Make Color Transparent
Remove white or a picked color from images, preserving other alpha values in a PNG.
Image Compare
Compare same-size JPEG or PNG pixels locally; export a difference PNG and JSON report.