Barcode generator.
QR codes plus 9 one-dimensional barcode formats. Custom colors, custom sizes, custom error correction. Download PNG (raster, 3x for print) or SVG (vector, scales forever). Nothing uploads.
jsbarcode + qrcode · client-side · MIT licensed
· format01
2D matrix code. Good for URLs, contact info, Wi-Fi credentials, anything text-shaped. Phones decode it with the camera app.
· data to encode02
· Any text. URLs are the most common use.
· colors03
· qr options04
Higher levels produce a denser code that survives more damage, useful for printed labels that may scuff. Pick H if you plan to put a logo over the center.
PNG renders at 3x for print clarity. SVG is vector and scales cleanly.
Pick the right format
Most decisions in barcode-land come down to three questions: what scans your barcode, what data does it carry, and how much physical space do you have. The format dropdown above describes each option in context, but if you want a faster answer:
- Phone scanning a poster, sign, or product: QR. Universally readable by every modern phone camera.
- Shipping label or general business: Code 128. The default for UPS, FedEx, USPS, and most logistics workflows.
- Retail product sold internationally: EAN-13. Required for most retail systems outside North America.
- Retail product sold mostly in the US or Canada: UPC-A. Equivalent in scope to EAN-13.
- Carton or shipping case of retail products: ITF-14. Wraps a GTIN around a packaging-indicator digit.
- Older warehouse, defense, or automotive system: Code 39. Limited character set but ubiquitous in legacy systems.
QR error correction in plain English
QR codes have four error-correction levels. The higher the level, the more of the code can be scratched, smudged, or covered without breaking the scan. The trade-off: higher correction means a denser, busier-looking code.
- L (low): recovers about 7%. Smallest, most efficient code. Use for clean digital displays.
- M (medium): recovers about 15%. The default. Good for most printed materials.
- Q (quartile): recovers about 25%. Use for outdoor signage that may weather.
- H (high): recovers about 30%. Use if you're putting a logo over the center, or printing on something that will get scratched.
PNG vs SVG: which to download
SVG is vector. It scales to any size, prints crisply at any resolution, and stays small in file size for simple shapes like barcodes. PNG is raster. Pixels. We render at 3x for decent print quality, but if you blow it up significantly, the edges will go soft.
Use SVG for: physical print labels, large posters, anywhere you need the barcode to scale. Use PNG for: web pages, slides, documents, anywhere you need a quick image at a roughly known size.
FAQ
Is this barcode generator actually free?
Yes. No account, no subscription, no watermark, no usage caps. The tool runs entirely in your browser using the jsbarcode and qrcode libraries. Generate as many barcodes as you want, in any format, at any size.
Which barcode format should I pick?
For URLs, contact info, or any text on a poster or product label scanned by phones: QR. For shipping labels (UPS, FedEx, USPS) or general business: Code 128. For retail products sold internationally: EAN-13. For retail products sold mostly in North America: UPC-A. For shipping cartons of retail products: ITF-14. For warehouse and defense systems with older scanners: Code 39. The format dropdown describes each as you select it.
Why does my EAN-13 / UPC need a check digit auto-calculated?
EAN-13 and UPC encode 12 to 13 user-supplied digits plus an algorithmically-derived check digit at the end. The check digit catches scan errors. If you supply only the data digits (12 for EAN-13, 11 for UPC-A), the tool calculates the check digit for you. If you supply the full code including check digit, it validates that the check digit matches.
What's the difference between PNG and SVG download?
PNG is a raster image (pixels). Good for embedding in slides, web pages, or anywhere the size won't change much. We render at 3x for print clarity. SVG is a vector image (math). Scales to any size without blurring; ideal for print labels, large posters, or anywhere the barcode needs to resize cleanly. If you're printing, prefer SVG. If you're embedding in a web page or document, PNG is usually easier.
What does QR error correction level do?
Higher levels make the QR code denser but more resilient to damage. Level L recovers about 7% of the data; M (default) about 15%; Q about 25%; H about 30%. Pick H if you plan to overlay a logo on the center of the code, or if the code will be printed on a surface that may scuff or fade. Pick L if you need the smallest possible code with high-quality scanning conditions.
Can I customize colors? What about logos in the QR code?
Yes to colors. Pick any foreground and background; the tool warns you if contrast is insufficient. Logos in the center of QR codes are not in this tool, but the workflow is straightforward: generate the QR at error-correction H, download as SVG, open in any vector editor (Figma, Illustrator, Inkscape), and place a logo of about 20 percent of the code's size in the center. The H-level error correction covers the obscured area.
Does anything I type get uploaded?
No. Encoding runs entirely in your browser. No network requests, no server, no API key required. Your text data and the generated images stay on your device. The only thing persisted is your last-used options in localStorage (cleared when you clear browser data).
Why isn't UPC-E (the short UPC) here?
UPC-E is mostly auto-derived from a UPC-A code by zero-suppression rules (a UPC-A with specific zero patterns can be compressed to UPC-E). For most practical uses, generating UPC-A is sufficient because virtually all scanners that read UPC-E also read UPC-A. If your specific use case requires UPC-E, generate the corresponding UPC-A here and use any UPC-E zero-suppression converter to compress.
What's Pharmacode and why is it here?
Pharmacode is a numeric code used on pharmaceutical packaging in Europe and India for production-line identification. It's narrower in scope than EAN-13 but if you need to generate one for compliance with pharma packaging standards, this tool supports it. Range is 3 to 131,070.
Can you add format X?
If it's a 1D linear barcode supported by the jsbarcode library (Codabar variants, GS1-128, etc.) it's a quick add. Email hello@briskly.tools with the format and a sample input. Two-dimensional codes other than QR (Data Matrix, PDF417, Aztec) require additional libraries; happy to add if there's demand.
Adjacent tools: the UUID generator for unique IDs you might encode in a barcode, the base64 encoder for binary-safe text, or the full dev hub for the rest of Briskly's developer utilities.