Generate a QR Code (PNG, SVG, WebP or GIF)

instantly generate a QR Code (PNG, SVG, WebP or GIF) from a URL, text, wifi or contact. Customise the colours, embed your logo at the centre and pick between square or round modules

Customisation (optional)

Why use a QR code generator?

QR codes are two-dimensional barcodes that can store machine-readable information. They are commonly used to encode URLs, text, geographic coordinates and much more. A QR code generator lets you easily create QR codes from various data sources, making information sharing and quick access to resources straightforward.

Features of the QR code generator

This tool takes a text string (URL, free-form content, structured data) and produces the matching QR code. Choose the output format from PNG, SVG, WebP or GIF, customise foreground and background colours, and optionally embed a logo at the centre of the code for your brand assets.

How to use the QR code generator

Enter the text string to encode and pick the output format you want (PNG, SVG, WebP or GIF). Tweak the foreground and background colours via the dedicated colour pickers, and optionally upload a PNG, JPG or WebP logo under 2 MB to embed at the centre of the code. Click "Generate": the tool renders both visual variants side by side - square modules (classic QR) and round modules (modern look) - so you can pick the one you prefer.

Once generated, the QR code shows up on screen and you can copy it via the dedicated button. If the contrast between your two colours is too low or inverted (light on dark), a warning is shown: scanner readability is no longer guaranteed.

Frequently asked questions

What is the maximum amount of text I can encode?

The QR standard allows up to around 4,296 alphanumeric characters or 2,953 raw bytes. In practice, the larger the payload, the denser the QR and the harder it is for a smartphone to scan. Try to stay under a few hundred characters to keep readability smooth even on a modest screen.

Which output format should I choose: PNG, SVG, WebP or GIF?

PNG is the versatile default, ideal for email and standard web embedding. SVG is vector-based: it stays crisp at any size, perfect for large-format printing (posters, roll-up banners) and CSS styling. WebP produces files ~25% lighter than PNG for equivalent rendering, useful for trimming page weight. GIF is mainly useful for backwards compatibility with older systems.

Can I customise the colours and add a logo?

Yes. The colour pickers let you freely set the foreground (the dark modules) and the background. A PNG, JPG or WebP logo (up to 2 MB) can be embedded at the centre of the QR: it is automatically wrapped in a white circular disc for a clean integration regardless of its original background, and the error-correction level is raised to High to compensate for the area covered. For the QR to remain readable, keep a strong contrast, keep the foreground darker than the background (most scanners cannot read inverted QR codes), and print or display at a minimum side length of around 2 cm.

Is my data sent to a third-party service?

No. Generation is done by our server, with no call to an external service and no retention once the result is sent. The text or URL you encode never leaves our infrastructure and is not logged in plain text in the application logs.

Can I encode a URL with UTM parameters?

Absolutely. A URL with parameters like ?utm_source=poster&utm_medium=qr is encoded as is. You can then track visits from the QR in your analytics tool. Just remember that the longer the URL, the denser the QR will be.

Can a QR code expire or be revoked?

Not as such. Once printed, a QR code encodes a fixed text and that text will not change. If you plan to change the destination later, encode a short URL you control (your own redirector) rather than the final URL. You can then change the target without reprinting the QR.

How do I decode an existing QR code?

Use our QR code reader: upload the QR image (JPEG, PNG, GIF, WebP or BMP) and get its text content. It is handy to check what was encoded before printing, or to decode a QR received as an attachment without using your smartphone.

Example request

curl -X POST https://cdrn.fr/api/v1/tools/qr-code-encoder/execute \
  -H "Content-Type: application/json" \
  -d '{"data":"...","output_format":"png","module_style":"squares","foreground_color":"#000000","background_color":"#ffffff"}'
curl -X POST https://cdrn.fr/api/v1/tools/qr-code-encoder/execute \
  -F "data=..." \
  -F "output_format=png" \
  -F "module_style=squares" \
  -F "logo=@/path/to/file" \
  -F "foreground_color=#000000" \
  -F "background_color=#ffffff"

Input schema

Field Type Required Default
data string
output_format choice (png, svg, webp, gif)
module_style string (squares, dots, both) squares
logo file
foreground_color string #000000
background_color string #ffffff

this tool also accepts an optional file - use Content-Type multipart/form-data to upload it, otherwise application/json is enough

Endpoints

  • GET https://cdrn.fr/api/v1/tools - lists every available tool
  • GET https://cdrn.fr/api/v1/tools/qr-code-encoder - returns the schema for this tool
  • POST https://cdrn.fr/api/v1/tools/qr-code-encoder/execute - runs this tool with a JSON payload