Skip to the tool
CALCPARK

Online Mirror

Turn your webcam or phone camera into a mirror in the browser: flip the image, freeze a frame, switch cameras, go fullscreen and save a snapshot. Nothing is uploaded.

Runs on your device
Loading the tool…

How to use it

  1. Click Turn on the mirror and allow the camera when the browser asks.
  2. Use Mirrored / Not mirrored to flip the image, Freeze to hold a frame, and Switch camera or the camera list to change device (front/back on phones).
  3. Click Fullscreen for a large mirror; press Esc or the button to leave.
  4. Click Save snapshot to download the current frame as a PNG (flipped the same way you see it).
  5. Click Turn off when you are done – the stream stops and the camera light goes out.

Example

A laptop webcam streams at 1280 × 720 px. In mirrored view, text on your T-shirt reads backwards, exactly like in a bathroom mirror. Switch to Not mirrored and it reads correctly – that is the picture Zoom, Teams or Meet send to other people (most call apps show you a mirrored self-view but send the un-mirrored image). A snapshot saved in mirrored view is 1280 × 720 px and keeps the flip, so it matches what you saw.

How it works and what the browser allows

The tool calls navigator.mediaDevices.getUserMedia with video: true (user-facing camera, 1280 × 720 requested) and assigns the stream to a muted <video> element; the mirror effect is a CSS scaleX(−1)transform, so nothing is re-encoded. Freeze simply pauses the video element. The snapshot draws the current frame onto a canvas of the stream's width and height (flipping it when mirrored) and saves it with canvas.toBlob as PNG through a temporary blob: link that is revoked afterwards.

Browsers require a secure context (https or localhost) and an explicit user gesture for camera access, hide device names until permission is granted, and show a hardware or tab indicator while a stream is active. Stopping all tracks releases the camera. Picture-quality limits come from the camera and the browser's chosen resolution, not from this page.

Sources: MDN – MediaDevices.getUserMedia(), MDN – MediaDevices.enumerateDevices(), MDN – Fullscreen API.

If the camera does not show

Blocked:click the camera or lock icon in the address bar, allow the camera and reload. On Windows check Settings → Privacy → Camera; on macOS System Settings → Privacy & Security → Camera. In use: only one app can hold most webcams – close the video-call app or other tab. Black picture: some laptops have a physical privacy shutter or a function key that disables the webcam. Wrong camera: pick another one in the list or use Switch camera.

Questions

Can anyone else see my camera?
No. The stream goes from the camera to the video element in your browser and nowhere else. The page has no recording feature; a snapshot is created and saved by your browser on your own device.
Why do I look different than in photos?
A mirror shows a left–right flipped version of your face, which is what you are used to seeing; photos and the un-mirrored view show the version everyone else sees. Faces are slightly asymmetric, so the unfamiliar orientation looks “off” at first.
Does the mirror work on a phone?
Yes. On Android and iPhone the front camera is used by default; the camera list or Switch camera changes to the back camera. iOS Safari does not support the Fullscreen API, so that button is hidden there.