Start with the final file—not a screenshot, chat preview, or editor thumbnail. The free PNG Transparency Checker reads it locally in your browser, shows whether the decoded pixels actually use transparency, and puts the edge on backgrounds that make defects easier to see. The image itself is never uploaded.
The 30-second version: drop the downloaded PNG into the checker. PASS_ALPHA_IN_USE means at least one decoded pixel has alpha below 255. HOLD_ALPHA_UNUSED means the file can store alpha but doesn't use it. FAIL_OPAQUE means the image is fully opaque. Even after a pass, look at the edge on white, black, and a saturated color.
Why the checkerboard can lie
Design apps often place a checkerboard behind transparent areas so you can see where the canvas ends. An image generator can also draw that same pattern as ordinary gray and white squares. Both may look “transparent” while you are staring at a light editor window. Only the first lets a webpage, slide, video, or product mockup show its own background through the file.
The filename does not settle the question either. Renaming logo.jpg to logo.png does not convert it. Exporting a PNG from an editor does not guarantee that the background was removed. Even seeing “RGBA” in a properties panel is incomplete evidence: a file can contain an alpha channel whose every value is 255, which means every pixel is fully opaque.
That is why a useful test has four layers:
- Identity: read the eight-byte PNG signature instead of trusting the extension or MIME label.
- Storage: inspect the
IHDRcolor type and the optionaltRNSchunk to learn how transparency is represented. - Use: decode the pixels and count alpha values below 255.
- Quality: composite the asset over high-contrast backgrounds and inspect the boundary at zoom.
Stopping after layer two creates the “unused alpha” mistake. Stopping after layer three creates a different problem: an image can contain real transparency and still have a white halo, clipped shadow, missing hair, or leftover background islands.
What transparency means inside a PNG
In decoded RGBA pixels, alpha describes opacity. An alpha value of 0 is fully transparent, 255 is fully opaque in an 8-bit channel, and values between them are partially transparent. Those middle values create soft antialiased curves, hair, glass, glow, and natural shadows. They are often exactly what makes a cutout look polished.
The PNG specification defines several storage layouts rather than one universal kind of pixel. The IHDR color type tells a decoder what samples are stored:
| Color type | PNG image type | How transparency can appear |
|---|---|---|
6 | Truecolor with alpha | Every pixel stores red, green, blue, and alpha samples. |
4 | Grayscale with alpha | Every pixel stores gray and alpha samples. |
3 | Indexed color | An optional tRNS table assigns alpha to palette entries. |
2 or 0 | Truecolor or grayscale | An optional tRNS value can mark one exact color as fully transparent. |
This is why “Does the file have a fourth channel?” is not a complete test. An indexed PNG can be genuinely transparent through tRNS, while an RGBA PNG can be functionally opaque because every alpha value is 255. The checker reports both the storage mechanism and the decoded result.
Why the decoded pixels matter more than the label
A browser ultimately composites decoded pixels, not a file-properties label. The checker draws the image to a canvas and uses the standard getImageData() interface to read its RGBA pixel buffer. It counts alpha 0, alpha 1–254, and alpha 255 separately. If either of the first two groups is nonzero, the rendered image is using transparency.
The tool checks the CRC value of every chunk it parses and looks for the acTL marker used by animated PNG files. A mismatch produces a hold, even if a tolerant decoder still displays the image. This is a focused delivery check, not a full PNG conformance certification: it doesn't prove that every legal ordering and parameter rule has been satisfied. For an animated PNG, the browser analysis covers one rendered frame, so inspect the whole animation separately.
Use the browser checker
- Save the actual final asset. Do not inspect a screenshot, a chat preview, or an editor thumbnail.
- Open the PNG Transparency Checker and choose or drop the file. The parser accepts PNG only and caps large files before canvas decoding.
- Read the verdict and its reason. Then compare the storage row with the decoded alpha counts.
- Inspect all four previews. Pay special attention to curves, corners, thin lines, shadows, hair, fur, glass, and light-colored objects.
- Download the JSON report if the file is entering a handoff, approval queue, or automated publishing workflow.
The report records the filename, byte size, SHA-256 hash, dimensions, bit depth, color type, transparency storage, chunk list, checksum state, alpha counts, bounding boxes, animation marker, and an edge-review signal. The hash gives you a simple way to catch a later re-export: if it changes, you are no longer looking at the exact file that was reviewed.
Privacy boundary: the page reads the selected file with browser APIs and does not send it to Grow AI Skills. The JSON report is created on your device. Your browser, extensions, operating system, clipboard, and downloaded files remain under your own security controls.
What PASS, HOLD, and FAIL actually mean
Treat the verdict as one specific finding, not an overall quality score. It tells you what the pixels prove and what you still need to judge yourself.
| Verdict | What the checker found | What to do next |
|---|---|---|
PASS_ALPHA_IN_USE | At least one decoded pixel has alpha below 255. | Complete the contrasting-background edge review. Pass does not mean publish automatically. |
HOLD_ALPHA_UNUSED | The PNG declares explicit alpha or tRNS, but every decoded pixel is opaque. | Check whether transparency was actually required. If yes, fix the mask or export settings. |
FAIL_OPAQUE | No transparency storage is declared and all decoded pixels are opaque. | Remove the background from the source layer and export again. A screenshot will not help. |
HOLD_CRC_ERROR | At least one chunk checksum does not match. | Re-export or recover an uncorrupted source before release. |
ERROR_UNREADABLE | The signature, chunk layout, or decoded image could not be read. | Confirm the format and reacquire the original file. |
None of these verdicts means “perfect,” “safe,” or even “background removed correctly.” A technically transparent image can still show the wrong subject, crop part of the object, contain material you cannot use, or leave a dirty edge.

Five test files that expose the common traps
We built five small, rights-clear files with known outcomes instead of relying on images with uncertain histories. The saved Python test record shows what each file contains and what result the inspector returned.

1. Real RGBA with a soft edge
The first fixture uses explicit RGBA storage. Its 176,400 pixels include 93,318 fully transparent pixels, 3,525 partially transparent pixels, and 79,557 opaque pixels. The tool returns PASS_ALPHA_IN_USE. The partial-alpha pixels preserve a smooth rounded corner instead of a jagged cutout.
2. A painted checkerboard in RGB
The second fixture looks like a cutout in some viewers because gray and white squares surround the badge. Structurally it is ordinary truecolor RGB with no alpha and no tRNS. All 176,400 decoded pixels are opaque, so it returns FAIL_OPAQUE. This is the failure a visual glance cannot reliably catch.
3. An alpha channel that does nothing
The third fixture is genuinely encoded as RGBA, yet all 176,400 alpha values equal 255. The checker returns HOLD_ALPHA_UNUSED, not pass. This distinction is useful in production pipelines that preserve four channels by default even when a layer was flattened over a background.
4. Real transparency with a white-matte fringe
The fourth fixture has the same alpha counts as the clean file, so its technical verdict is pass. But light RGB values were intentionally placed beneath the partially transparent edge. On navy and magenta backgrounds, a thin pale outline becomes obvious. The tool raises a light-edge review signal while refusing to call it an automatic failure: a white object may legitimately have a light edge.
5. Indexed transparency through tRNS
The fifth fixture has no explicit per-pixel fourth channel. It stores palette indices and a tRNS alpha table. After decoding, 94,783 pixels are transparent and 81,617 are opaque, so the correct result is pass. A simplistic “RGBA mode only” rule would incorrectly reject it.
The edge review is where usable quality is decided
Alpha is not a magical eraser. It is a compositing instruction. PNG stores unassociated color samples, which means the RGB values beneath a partially transparent pixel still influence the result when that pixel is blended over a new background. A subject cut from white can therefore carry pale edge colors that look fine on white and glow on black.

Use at least three backgrounds because each reveals a different class of defect:
- White: exposes dark contamination, gray residue, and clipped light glows.
- Black or navy: exposes white matte, over-bright antialiasing, and incomplete shadow cleanup.
- A saturated color: exposes low-contrast residue that hides on neutral backgrounds.
- Checkerboard: helps you locate transparent areas, but never serves as proof by itself.
Zoom in, but also step back. At 400%, almost every antialiased boundary looks strange. The useful question is whether the asset creates a visible seam at the size and background where it will be used. For logos and UI icons, test the actual smallest size. For product cutouts, inspect both the object edge and the natural shadow. For hair, fur, smoke, glass, and motion blur, expect partial alpha; a binary all-or-nothing mask may look worse than the original background.
If the PNG came from GPT Image or ChatGPT Images
OpenAI's current image prompting guidance recommends requesting an isolated subject, setting the background to transparent, and using PNG or WebP. That is the right starting point, but the downloaded file is still what you need to inspect. Interfaces, model behavior, and export defaults can change, and a preview may be flattened or transformed after generation.
For an API workflow, keep the request and the file check separate:
Generation request
background: transparent
output_format: png
Acceptance gate
1. PNG signature is valid
2. transparency storage is present
3. decoded alpha_min is below 255
4. edge passes white, black, and saturated previews
5. approved file SHA-256 matches the delivered file
If the image fails, change one thing at a time. Regenerate or edit specifically for background removal, then rerun the same checks. Don't add a painted checkerboard to the prompt; ask for a transparent background. One output can tell you what happened to that file, but it cannot tell you how reliably a model will behave across future requests.
If you need help writing the generation request, assigning reference-image roles, preserving exact text, or controlling revisions, continue with the GPT Image 2.5 prompting tutorial. If you are choosing a model, follow the matched Flare-versus-Sunburst test workflow. Those guides help you create the image; this one picks up after download.
How to repair each failure without making it worse
Painted checkerboard or flat background
Return to the highest-quality source. Create a layer mask around the subject, inspect it over a contrasting layer, and export with transparency enabled. If you only have the flattened image, automatic background removal may be a useful first pass, but check regions where the subject shares colors with the background. Deleting “all white” can remove eyes, labels, reflections, or product highlights.
Unused alpha channel
Confirm the requirement first. A fully opaque PNG is not defective if the design intentionally includes a rectangular background. If transparency is required, inspect the layer stack: the mask may be disabled, an opaque background layer may still be visible, or the export preset may have flattened the composition. Fix the source rather than trying to edit alpha values blindly.
White or dark fringe
Refine the mask while viewing it over the destination background. Defringe or decontaminate edge colors carefully, especially around fine hair and semitransparent shadows. Do not simply contract the selection until the fringe disappears; that often cuts into the subject and creates a new hard edge. Keep an untouched source and compare before and after at actual use size.
CRC error or unreadable file
A screenshot may look fine, but it only hides the corruption inside a new file. Re-export from the source or retrieve the original download instead. One tolerant viewer opening the image doesn't mean every downstream decoder will handle it the same way. Once repaired, rerun the checker and keep the new hash.
Use the Python inspector for batches and handoffs
The browser tool is fastest for one file. The downloadable Python inspector is more useful when you have a folder of assets, need repeatable JSON, or want a CI job to stop on opaque exports. It requires Python and Pillow; it does not call a remote API.
python -m pip install Pillow
python png-transparency-inspector.py logo.png --output logo-alpha-report.json
# Non-pass verdicts return exit status 2:
python png-transparency-inspector.py exports/*.png --fail-on-nonpass
The complete verification kit includes the inspector, five original fixtures, a README, the license, and the saved test record. Run those fixtures before putting the script into a production pipeline, then add a sample that resembles the assets you actually publish.
When automation should stop: --fail-on-nonpass returns zero only for PASS_ALPHA_IN_USE. The script can't tell whether you cut out the wrong subject or whether the edge looks good, so keep a person in the final visual review.
A practical release checklist
- You checked the final downloaded or exported file, not a preview.
- The file has a valid PNG signature and matching chunk checksums.
- The report shows the expected dimensions and bit depth.
- The decoded alpha minimum is below 255 when transparency is required.
- Transparent, partial, and opaque pixel counts are plausible for the asset.
- The subject is complete and no background islands remain.
- The edge looks clean over white, black, and a saturated color at actual use size.
- Every frame was reviewed separately if the PNG is animated.
- The approved report hash matches the file being delivered.
- Rights, brand, factual, and destination-specific checks are complete.
The habit is simple: inspect the bytes you are shipping, then look at the edge where the image will actually appear. That catches the fake checkerboard, the forgotten background layer, and the ugly fringe before they become someone else's problem.
Edge cases people often ask about
Does a PNG always support transparency?
The format supports several transparency representations, but a particular PNG may contain none. It may also declare alpha storage while using only fully opaque values.
Can I tell from the checkerboard background?
No. A checkerboard may be drawn into ordinary opaque RGB pixels. Inspect the downloaded file's structure and decoded alpha values.
Is one transparent pixel enough for a pass?
It is enough to show that transparency is in use. It is not enough to show that the background was removed correctly. Compare the counts and bounding boxes with what the asset should contain, then review the previews.
Why does the tool warn about light edge colors?
Light RGB beneath partial alpha can create a pale fringe on dark backgrounds. The signal is intentionally nonbinding because a white subject may have a legitimate light edge. Look at the rendered previews.
Does this prove GPT Image produced transparent output reliably?
No. It proves facts about the one file you inspected. Model reliability requires multiple pinned, repeated runs with a defined acceptance rubric. The synthetic fixtures test the checker, not the model.
