Guide

How to Create a QR Code Online

A QR code is a square matrix of dark and light modules that stores a short payload. When a camera finds the three corner finder patterns, it can decode the bytes and hand them to an application. The most common everyday payload is a website address, but the same matrix can hold plain text, a mailto URI, a telephone URI, an SMS URI, Wi-Fi credentials, or a vCard.

Matrix & Mark is a QR code generator that builds static codes in the browser. Static means the payload sits inside the image. After you download a PNG or SVG, the encoded string does not change, expire, or report who scanned it. There is no redirect through greneshadees.com and no account gate on the download buttons.

What a static QR code is — and is not

People sometimes treat a QR image as a tiny website with analytics attached. That only happens if a separate service issues a short URL and logs requests. A static code cannot do that by itself. If you encode https://example.com/hours, a scanner that opens URLs will request that host, not this studio. Encoding is also not encryption. Anyone with a decoder can read the payload.

Choose the content before you design the square

Decide what the scan should accomplish. If the goal is to open a page, use the URL QR code generator. If the goal is a door notice, use plain text. Email, phone, SMS, Wi-Fi, and contact cards each produce a different URI or text format; they are not relabeled copies of the URL form. Mismatching the type — for example pasting a password into URL mode — either fails validation or stores something scanners will not treat as a network handshake.

Entering a URL, step by step

Here is a complete website example you can reproduce on the homepage studio.

  1. Open the QR code generator. Website URL is the default type.
  2. Replace the editable example https://example.com with the address you actually want, such as https://example.com/library/hours.
  3. The address must be an absolute http:// or https:// URL. If you type library.example.com without a scheme, the studio will not silently rewrite it. Use Prepend https:// so the change is visible in the field.
  4. javascript:, data:, and file: schemes are rejected in URL mode. The studio also does not check whether the destination is safe or online.
  5. Watch the live preview. The encoded content box should show the same URL you entered, along with a UTF-8 byte count, error-correction level, and matrix size.
  6. Press Generate QR Code if you want a status announcement, or simply leave the live preview as it updates on valid input.

Error correction

Levels L, M, Q, and H add increasing Reed–Solomon recovery. The default on this site is M, a practical middle for clean paper. Raising the level can help if a label might scuff, but it uses capacity and may force a larger version. A higher level does not guarantee a successful scan, and a torn code is not always readable. If a long text payload no longer fits, shorten the content or choose a lower level rather than hoping the encoder will truncate. It will not.

Foreground and background colors

The default pair is #172A30 on #FFFFFF. Presets (Classic Black, Dark Navy, Deep Green, Charcoal, Warm Ink) only change the foreground. You may enter other hex values. When the two colors are similar, a warning appears. Sufficient contrast improves reliability; a particular ratio still does not guarantee scanning. Avoid light modules on light paper, transparent backgrounds, busy photographs behind the matrix, and inverted experiments you have not tested on a phone.

Do not place logos inside the modules. Untested round dots and artistic cutouts can destroy finder patterns. Keep labels outside the quiet zone.

PNG versus SVG

Download PNG when you need a raster file at 256, 512, 1024, or 2048 pixels square. The pixel count includes the quiet zone. Modules are drawn with integer sizes so edges stay sharp; leftover pixels become extra background padding instead of blurred interpolation. Download SVG when you need a vector proof for a layout program. The SVG is built from the matrix, not from a screenshot, and contains no scripts or remote images. For a longer comparison see PNG vs SVG QR codes.

Printing and testing

Print QR Code opens a sheet with the live code, the quiet zone, an optional short caption, and a chosen physical size: 32 mm, 70 mm, or 120 mm. Navigation stays off the page. Use actual-size or 100% scaling when the dialog allows it. Printer drivers still differ, so scan the paper. Test before you share a stack of flyers. Related detail lives in the printing article and the printing guide.

Privacy considerations

Generation runs locally. Wi-Fi passwords are not written to localStorage. Appearance settings may be stored in this browser so colors and export size persist; payloads are not. Do not encode secrets you would not print on a card. A photographed QR code is a photographed copy of its text.

A second practical example

Suppose a workshop door needs hours rather than a website. Switch to text mode and enter:

Saturday hours: 10:00–16:00. Ring the bell after 16:00.

Keep the line breaks if you want them in the scan result. Choose Medium error correction, export a 1024-pixel PNG named like matrix-mark-text-1024.png, print a 70 mm proof, and scan it with two phones before taping it up.

FAQ

Does this QR code generator shorten my URL?

No. The matrix stores the URL you validated. There is no hidden redirect.

Will I see who scanned the code?

Not from a static image. Scan counts require a separate tracking service, which this site does not provide.

Can I edit the code later?

You generate a new image from new input. The already downloaded file does not update itself.

Continue with payload types or return to the working generator.