An image color picker samples a pixel and reports its color. This page loads a local JPEG, PNG, or WebP, draws the decoded bitmap onto a working canvas at original size, and shows a scaled preview. A click on the preview maps to one source pixel. getImageData reads that pixel. The page prints HEX, rgb(), rgba(), and the X,Y coordinate. HEX is the 8-bit sRGB triplet. Alpha is reported separately. A transparent pixel keeps its RGB and is labeled transparent when alpha is below 255.
This is not a color-managed eyedropper. There is no Lab, no P3, no average of a 5×5 neighborhood, and no contrast checker. One canvas pixel is the whole product. If you needed the picture size before you hunt a pixel, use the Image Dimensions Checker.
Empty selection, unsupported type, oversized file, and decode failure are errors. SVG is refused. The swatch uses a CSS rgba background from the sampled channel values. It is not an uploaded asset. Clear drops the session.
A logo PNG might sample as #0B5FFF with rgb(11, 95, 255) and alpha 1. A glass overlay might sample as the same RGB with alpha 0.400 and the pixel row marked transparent. A JPEG has no useful alpha; alpha reads 255. Clicking near a hard edge can land on either side because the mapping uses the scaled preview. Zoom the source in another app if you need sub-pixel certainty this page does not claim.
Do not treat HEX from a compressed JPEG as a brand token if the logo was flattened onto a photo. Sample from a PNG source when you can. This page will not average, will not snap to a palette, and will not upload the image to a palette API.
Sampling uses the source canvas at original width and height, not the scaled preview pixels. The click position is mapped through the preview rectangle so a click at the center of a 2000 × 1000 image lands near (1000, 500) even if the preview is 560 pixels wide. That mapping is integer floor. Adjacent pixels can differ on a hard edge.
HEX is lowercase six digits with a leading #. RGB is the css rgb() form. RGBA includes alpha as a 0–1 value with three decimal places. Copy HEX writes only the six-digit value. If you needed rgba() on the clipboard, select that row. The swatch is a div background, not an injected image tag.
The same cluster rules apply. JPEG, PNG, WebP. 8 MB. No SVG. No upload. No storage. Filenames sanitized. If you wanted a full palette extractor or a WCAG contrast pair, that is another product. This page samples one pixel and stops.
On a phone the preview is the tap target. The crosshair cursor is a desktop hint. Touch still maps through the preview rectangle to one source pixel. If the tap lands on a blended edge, sample a few pixels over and trust the one that matches the flat color you wanted. The page will not guess a dominant color for you.
Click the preview to sample one canvas pixel. Values are 8-bit sRGB from getImageData. Transparent pixels keep their RGB and report alpha. This is not a color-managed eyedropper.
A click on the preview maps to one source pixel. getImageData reads that pixel.
RGB is still shown. RGBA includes alpha. The pixel row notes transparent when alpha is below 255.
No. Values are 8-bit sRGB from the canvas.
No. Sampling stays in this browser.