A QR code scanner reads the text that was written into a square pattern of dark and light modules. This page does that in the browser in two ways. Upload a picture, and the decoder runs on those pixels. Or start the camera, and the page samples the live picture until a code appears, then stops. Both paths use the same reader. The result is the string inside the code: a URL, a Wi-Fi setup, a short note, or whatever else the person who made the code put there. The page shows that string. It does not follow a link, join a network, or add a contact.
Scan QR code from image is the path that does not need a camera. Export the code as a PNG, or photograph it so the square is large and reasonably straight, then choose the file. The picture is drawn onto a canvas and the reader looks at every pixel. A code that fills the frame is easier than a code that is a speck in the corner of a poster. Glare, motion blur, and a crop through one of the three big corner squares are the usual reasons a real code comes back as "nothing found." Inversion is attempted as well, so a light-on-dark code has a chance. This is a QR reader, not a general barcode reader. A supermarket bar is a different symbol.
The camera button asks the browser for video, preferring the environment-facing camera on a phone. Permission is the browser's dialog, not a prompt this site can skip. If you refuse, the note says so and the file input is still there. While the camera is on, a frame is checked about every quarter of a second. The first successful read stops the camera and prints the text. Stop camera does the same without a read. The frames are not stored. There is no recording indicator beyond the video element you can see, and there is no upload of the picture.
Treat the text as untrusted. A QR code is only a short piece of text with extra error correction. It can contain a look-alike address, a payment request, or a phone number you did not expect. This scanner will not protect you from a code you then choose to open. Read the characters. If you made the code yourself on the QR code generator, scanning the PNG is a useful check that the text survived. That generator does not expire the image, because the image is just a picture of the text.
The reader library is loaded only after you pick a file or start the camera, so the rest of the site does not carry it. Decoding runs locally. A very large photo is limited by the tab's memory. If the reader itself fails to load, the note says so and you can refresh. Nothing is written to an account, because there is no account. The latest result disappears when you leave or refresh, unless you copy it.
The directory lists the other utilities, including the countdown timer and the stopwatch, which do not read images. If you wanted to shrink the photo after you scanned it, the image tools are a separate path. This page's only job is the text inside the QR code.
Hold the camera steady and fill the frame with the square if the first pass fails. A phone that keeps refocusing on the background will miss a small code on a table. Move closer, or photograph the code and use the file input, which is often clearer than a live preview in a dim room. The decoder does not need the picture to be square in the file. It needs the modules to be distinguishable. A code printed too small on a receipt may simply not have enough pixels once the camera has compressed the frame.