Профессиональный генератор QR-кодов
Генерируйте QR-коды прямо в браузере, поддерживаются настройки стиля (форма/маркеры позиционирования), градиенты, логотипы, рамки и возможность поделиться. Данные не отправляются на сервер, сервис абсолютно бесплатен и без водяных знаков.
Генератор QR-кодов
Скачиваемые изображения не имеют никаких водяных знаков, инструмент можно использовать бесплатно навсегда.
Способ использования
- Выберите тип (URL, текст, WiFi, vCard, SMS, электронная почта), введите или вставьте содержимое
- Настройте размер, отступ, цвета, уровень коррекции ошибок, а также стиль (форма/маркеры позиционирования), градиенты, логотип, рамку и другие параметры
- Выберите формат PNG или SVG
- QR-код будет сгенерирован автоматически; после этого вы можете 'Скачать' или 'Скопировать' его
- При использовании логотипа или сложных стилей рекомендуется повысить уровень коррекции ошибок до H и оставить достаточную пустую область (отступ)
- При использовании для печати или демонстрации обеспечьте высокую контрастность между передним планом и фоном, избегайте слишком маленьких размеров и сильного искажения
Особенности
- Генерация на стороне клиента (без отправки данных на сервер)
- Поддержка вывода в форматах PNG и SVG
- Настраиваемый стиль: форма, маркеры позиционирования, закругленные углы, зазоры
- Градиенты (многоцветные, разнонаправленные)
- Наложение логотипа (можно автоматически повысить уровень коррекции ошибок)
- Рамки и обводки (стиль с закругленными углами)
- Поделиться и копирование в буфер обмена (ссылка/изображение)
- Поддержка нескольких языков и тем
Что такое точки позиционирования (Finder)?
Три больших квадрата в четырех углах QR-кода называются точками позиционирования (Finder). Они помогают камере быстро определить положение и угол наклона QR-кода, что позволяет осуществить коррекцию и декодирование. Обычно это черно-белая структура 7×7 модулей (снаружи черный, внутри белый, в центре черный).
- Роль: быстрая позиционирование, устойчивость к вращению и перспективе.
- Стиль: этот инструмент поддерживает рендеринг точек позиционирования в форме квадратов, с закругленными углами и в "стиле точек" (выберите в разделе "Стиль → Finder").
Кто изобрел QR-код?
QR-код был изобретен в 1994 году инженером японской компании Denso Wave Масахиро Хара (Masahiro Hara). QR - это сокращение от "Quick Response" (быстрый отклик).
- Мотивация изобретения: повышение эффективности идентификации на автомобильной детальной линии, преодоление ограничений по емкости и скорости считывания одномерных кодов.
- Источник вдохновения: черные и белые камни го и матричные узоры вдохновили на создание высокоустойчивого дизайна с использованием "модульной + позиционирующей графики".
- Почему не нужно платить по патентам: Denso Wave владеет торговой маркой и частью патентов, но ясно указала, что разрешает бесплатное использование для развития экосистемы (поддерживает коммерческое использование без уплаты лицензионных платежей).
Стандартные нормы и рекомендации по использованию
- Международный стандарт: ISO/IEC 18004 (Спецификация QR-кода 2D), который определяет версию, маскирование, коррекцию ошибок, структуру графики и т.д.
- Уровень устойчивости к ошибкам: четыре уровня L/M/Q/H (примерно 7%/15%/25%/30% могут быть восстановлены). При наложении логотипа рекомендуется использовать более высокий уровень.
- Кодируемое содержимое: текст, URL, vCard, Wi‑Fi и т.д. Рекомендуется следовать соответствующим стандартам URI/формату данных (например,
WIFI:T:WPA;S:SSID;P:PASS;;). - Печать и отображение: обеспечить контраст между передним и задним планами и размер пустого пространства. Избегать чрезмерного искажения, слишком маленьких размеров и слишком плотных текстур, которые могут мешать считыванию.
- Доступность: в важных случаях рекомендуется предоставить резервный текст/ссылку, чтобы не использовать QR-код как единственный вход.
Генерация QR-кода с использованием языков программирования
Ниже приведены простейшие примеры на популярных языках, подходящие для начала работы и создания скелетов проектов:
// Node: npm i qrcode
const QRCode = require('qrcode');
QRCode.toFile('qrcode.png', 'https://example.com', { errorCorrectionLevel: 'M' });
// Browser (Canvas):
// <script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/browser.min.js"></script>
QRCode.toCanvas(document.getElementById('canvas'), 'Hello QR', { width: 256 });
# pip install qrcode[pil]
import qrcode
img = qrcode.make('https://example.com')
img.save('qrcode.png')
// composer require endroid/qr-code
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\PngWriter;
$qr = QrCode::create('https://example.com');
$writer = new PngWriter();
$result = $writer->write($qr);
$result->saveToFile(__DIR__.'/qrcode.png');
// go get -u github.com/skip2/go-qrcode
package main
import "github.com/skip2/go-qrcode"
func main() {
qrcode.WriteFile("https://example.com", qrcode.Medium, 256, "qrcode.png")
}
// Maven: com.google.zxing:core, com.google.zxing:javase
// Minimal ZXing example
import com.google.zxing.BarcodeFormat;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class Main {
public static void main(String[] args) throws Exception {
QRCodeWriter writer = new QRCodeWriter();
BitMatrix matrix = writer.encode("https://example.com", BarcodeFormat.QR_CODE, 256, 256);
BufferedImage image = MatrixToImageWriter.toBufferedImage(matrix);
ImageIO.write(image, "png", new File("qrcode.png"));
}
}
// Cargo.toml
// qrcode = "0.13"
// image = "0.24"
use qrcode::QrCode;
use image::Luma;
fn main() {
let code = QrCode::new("https://example.com").unwrap();
let image = code.render<Luma<u8>>().min_dimensions(256, 256).build();
image.save("qrcode.png").unwrap();
}
Примечание: разные библиотеки имеют значительные различия в поддерживаемых возможностях по стилизации. Если вам нужны сложные стили (точки, градиенты, стили точек позиционирования, рамки и т.д.), вы можете сгенерировать PNG/SVG в этом инструменте и использовать их напрямую.