QR Code Studio

Create and batch QR codes, scan images or a camera, and save projects in this browser.

QR content is processed locally. Project storage is optional, and camera access starts only after you choose it.

Choose what kind of content the static QR code should contain.

Enter a complete address starting with http:// or https://. Leading or trailing spaces are rejected, and a missing scheme is never added for you.

QR design

Style colors, modules, finder patterns, logos, frames, and captions. Design-only changes keep the current QR matrix unchanged.

Colors

Six-digit HEX value. Dark modules on a light background support strong contrast.

Six-digit HEX value. The background stays opaque and very light to protect the quiet zone.

Foreground gradient
Module and finder styles
Error correction

Higher levels often increase the QR version. No level guarantees readability or fully compensates for damaged prints.

Design presets

Custom logo

Up to 5 MB and 4096 × 4096 pixels. The image is checked locally and embedded as a cleaned PNG.

The image stays on this device and is not uploaded.

Frame and caption

UTF-8 bytes 0

QR content is built, imported, and scanned locally; the new workflows do not upload it. Saving a project is optional and stores selected content in this browser profile without extra encryption; browser cleanup or profile changes can remove it. Camera access starts only after your click; frames are analyzed locally and never stored or sent. The shared site shell may separately request page-view and advertising resources.

Preview

The code has a four-module quiet zone and keeps a high-contrast black and white design.

Enter valid content to see a QR code preview.

Export and print

Choose the file and its real output size. Export settings never change the QR content.

Final graphic check

Run the local check before exporting. It also decodes a rendered sample of this composition.

This is a local technical plausibility check, not ISO/IEC 15415 certification or a guarantee for every phone, scanner, printer, or material.

What this tool does

Create one QR code or a batch for websites, social media, videos, music and podcasts, documents, app store links, communication, contacts, Wi-Fi, locations, and events.

Payloads, QR matrices, PNG and SVG files, and one-page PDF exports are generated locally in your browser; the print view uses your browser's print function.

Scan local images or choose to start the camera. Optionally save projects to this browser profile or export them as JSON.

Create EPC transfer payloads, existing payment links, UTM campaign URLs, static coupons, and GS1 Digital Link URIs for GTINs.

Adjust foreground, background, gradients, data modules, finder patterns, and error correction without changing the QR content.

How to use the tool

  1. Choose a content type from the grouped selector and fill in the fields shown for that type.
  2. Review the live preview, QR details, and optional encoded payload.
  3. Adjust the design in the preview. Reset design restores only colors, shapes, and error correction; your QR content stays intact.
  4. Choose PNG, SVG, one-page PDF, or Print in the shared export panel. Set pixel or print dimensions, and use the separate local .ics download for calendar events.
  5. Review the displayed data and complete payload for SEPA and GS1 before exporting; copy the generated URL directly from the campaign builder.
  6. Use Batch for URL/text lists, CSV, or JSON records that use the existing content types. Check each row before creating a ZIP.

Useful applications

  • Share websites, contact methods, and prefilled messages on cards or posters.
  • Share public social profiles and posts, videos and livestreams, music and podcasts, documents, menus, forms, and app store listings.
  • Share calendar data in a QR code or import the matching .ics file into a calendar application.
  • Use EPC transfer details on invoices, existing payment or donation links, campaign links, coupon codes or redemption pages, and GTIN-based product links.

Notes and limitations

  • The QR engine uses QR Model 2, versions 1–40, error correction L/M/Q/H, UTF-8 with ECI 26, and a four-module quiet zone. Content is never silently truncated.
  • The designer validates opaque HEX colors and 41 samples along each gradient. Color and shape changes reuse the same QR matrix. Decorative styling can affect readability; test prints and scanners for the intended use. This is not ISO/IEC 15415 certification or a guarantee for every device.
  • Wi-Fi payloads use WIFI:T:WPA for WPA/WPA2 Personal, WIFI:T:SAE for WPA3-Personal, and WIFI:T:nopass for networks without a password. The current Android AOSP Wi-Fi parser recognizes SAE; other scanners can differ. SSIDs are limited to 32 UTF-8 bytes. Reserved characters are escaped; the password is readable in the QR code. Enterprise/EAP is not offered.
  • Geo URIs following RFC 5870 contain latitude and longitude in WGS-84 order. Decimal points and decimal commas are accepted; names require the Google Maps link.
  • Location links use Google Maps Search. Directions create static Maps URLs with api=1, destination, optional origin, travel mode, and an optional navigation action. No geocoding occurs and no link is opened while editing.
  • Calendar QR codes contain a VEVENT component. Date and time are interpreted in the selected IANA time zone and serialized as UTC. Nonexistent or ambiguous local daylight-saving times are rejected. All-day end dates are exclusive, based on the final inclusive event date.
  • The local .ics download contains VCALENDAR/VERSION:2.0 and can be imported independently of the scanner. A QR scanner may still display VEVENT as text; scanner behavior varies by device.
  • M4 encodes social, video, audio, document, and app store destinations as static links. URL parameters and fragments are preserved. A YouTube handle can be constructed only using its documented profile URL format; other social profiles need a complete link. Google Play also supports its official package-name format.
  • For selected platforms, the browser checks HTTPS and the hostname without contacting the destination. Links are not checked for availability, and a QR code does not grant permissions to a shared file. One app QR cannot automatically route between iOS and Android.
  • Meeting QR codes contain the entered HTTPS link unchanged. Google Meet, Microsoft Teams, Zoom, Jitsi, and self-hosted HTTPS URLs are not contacted or checked for reachability.
  • Inputs remain in this page memory until cleared or closed. QR payloads are not stored on a server. The shared page shell may independently request page views and existing advertisements.
  • SEPA follows EPC069-12 version 3.1: UTF-8, service tag BCD, format 002, SCT, fixed field order, at most 331 payload bytes, QR version at most 13, and error correction M. IBAN country format, registered length, BBAN character structure, and MOD-97 checksum, BIC syntax, and RF references are checked; account reachability or ownership is not confirmed.
  • GS1 Digital Link M5 supports GTIN-8/12/13/14, valid GS1 check digits, and the /01/ URI with the GTIN padded on the left to 14 digits. It emits a regular QR code with an HTTPS URI, not GS1 registration, product resolution, or FNC1 symbology.
  • Payment links, campaign URLs, and coupons use complete HTTPS destinations. Existing query parameters and fragments are retained; visits are not counted and no payment or redemption is performed.
  • PNG DPI is used to calculate the pixel count and is not stored as DPI metadata. SVG can include optional millimeter dimensions. PDF contains one page; browser print size depends on printer and driver settings. For scale-oriented printing, choose 100% or Actual size.
  • The local quality check decodes a rendered sample and checks technical plausibility. It is not ISO/IEC 15415 certification and cannot guarantee readability on every device or print material.
  • Batch accepts up to 100 records and 2 MB of CSV or JSON input. ZIP output is limited to 32 MB; entries that fail validation or independent decoding are listed in the manifest and excluded by default.
  • Scanning never opens URLs, runs QR content, or saves a scan history automatically. Only a validated HTTP(S) link gets an explicit open action; this is not a phishing or malware check.
  • Projects are saved only after an explicit action in this browser profile. They are not encrypted; browser cleanup, profile changes, or private browsing can remove them. Export a JSON backup to keep a copy.

Frequently asked questions

Which content types are supported?

M1–M4 include URL, text, communication, contacts, Wi-Fi, location, directions, events, meetings, social, video, audio, document, and app links. M5 adds EPC SEPA transfers, existing payment and donation links, UTM campaigns, coupons, and GTIN-based GS1 Digital Links. M6 adds visual styling and error correction choices.

Is my Wi-Fi password protected?

The password is part of the QR payload and is not encrypted. Share the code only with people you want to give network access to.

Do Wi-Fi QR codes work with WPA3?

The studio creates WPA/WPA2 Personal payloads with T:WPA, WPA3-Personal with T:SAE, and networks without a password with T:nopass. Android's AOSP parser supports SAE; other scanners and devices can differ.

Will scanning automatically navigate or add a calendar event?

No. Google Maps may offer a preview or navigation depending on the device and route. A calendar scanner may display VEVENT as text. A separate action is needed to open apps or import files.

Why is there also an .ics download?

Not every QR scanner recognizes calendar data automatically. The local .ics file is a complete iCalendar object that can be imported into a compatible calendar application.

Does the tool check my meeting link?

No. It validates only HTTPS URL syntax and keeps the entered link, including query parameters. Tokens in the link are visible to people who can read the QR code.

Are my form values sent to petuja.tools?

QR payloads and scans stay in the browser in these workflows. A project is stored locally only after you choose Save. The shared page shell may independently load existing advertisements and the page-view counter.

Does scanning open or run QR content automatically?

No. Scanned content is displayed as text. A valid HTTP(S) link can be opened only after you choose its link action; no URL is checked for safety or reputation.

Where are local projects stored?

Projects are stored in IndexedDB in the current browser profile after an explicit save. They are not encrypted or synced to the cloud and can be lost if browser data is cleared or the profile changes. Export a JSON backup when you need a separate copy.

What if the content is too long?

The generator reports when content does not fit any QR code at error correction M. It never truncates content automatically.

Does a SEPA QR code make a payment?

No. It contains transfer details for a compatible banking app to read. The payer must check the beneficiary, IBAN, amount, and reference, then authorize the payment. Support depends on the banking app.

What does IBAN validation check?

The studio checks the country format, registered length, and MOD-97 checksum. It does not contact a bank or confirm that an account exists or who owns it.

Does the studio create or track campaigns?

It creates a URL with UTM parameters locally. It does not record visits or provide analytics or redirects; those depend on the destination website.

Does a GS1 Digital Link guarantee a product page?

No. The URI syntax encodes the GTIN in the /01/ path but does not guarantee a public product page or resolver response. The QR code contains a regular HTTPS URI.

Does a styled QR code guarantee readability?

No. The studio checks contrast and protects QR function patterns, but colors, print quality, and scanners affect the result. Test with the intended devices; this is not an ISO/IEC 15415 inspection.