1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/viyo-svg-captcha

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_CN.md 4.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 06:37 6dc049f

SVG-капча

Генерация капчи в формате SVG в Node.js.

Переводы

Английский

В каких случаях используется SVG-капча?

  • Невозможно использовать Google ReCaptcha.
  • Невозможно установить модуль C++.

Установка

npm install --save svg-captcha

Использование

var svgCaptcha = require('svg-captcha');

var c = svgCaptcha.create();
console.log(c);
// {data: '<svg.../svg>', text: 'abcd'}

Использование в Express:

var svgCaptcha = require('svg-captcha');

app.get('/captcha', function (req, res) {
	var captcha = svgCaptcha.create();
	req.session.captcha = captcha.text;

	res.set('Content-Type', 'image/svg+xml');
	res.status(200).send(captcha.data);
});

API

svgCaptcha.create(options)

Если параметры не указаны, сгенерированное изображение капчи содержит 4 символа.

  • size: 4 // длина капчи
  • ignoreChars: '0o1i' // символы, исключаемые из капчи
  • noise: 1 // количество линий помех
  • noisewidth: 1 // толщина линий помех
  • color: true // наличие цвета у символов капчи, по умолчанию нет, если установлен фон, то по умолчанию есть
  • background: '#cc9966' // цвет фона изображения капчи

Возвращаемый объект имеет следующие свойства:

  • data: string // путь SVG
  • text: string // текст капчи

svgCaptcha.createMathExpr(options)

Параметры и возвращаемое значение аналогичны предыдущему API. Отличие в том, что сгенерированный SVG представляет собой математическое выражение, а свойство text содержит результат выражения. Однако использование аналогично предыдущему.

svgCaptcha.loadFont(url)

Загружает шрифт, заменяя встроенный шрифт.

  • url: string // путь к файлу шрифта Этот интерфейс вызывает одноимённый интерфейс opentype.js. Возможно, вам потребуется изменить некоторые настройки, чтобы шрифт выглядел хорошо. См. следующий интерфейс:

svgCaptcha.options

Это глобальный объект конфигурации. По умолчанию используются параметры создания и createMathExpr.

Помимо size, noise, color и background, вы также можете изменять следующие атрибуты:

  • width: number // ширина капчи
  • height: number // высота капчи
  • fontSize: number // размер текста капчи
  • charPreset: string // случайный набор символов

svgCaptcha.randomText([size|options])

Возвращает случайную строку

svgCaptcha(text, options)

Возвращает путь SVG на основе параметра text. В версии 1.1.0 и ранее вам нужно было вызывать два предыдущих интерфейса, но теперь достаточно вызвать только create(), чтобы получить изображение (^_^)/

Примеры изображений

По умолчанию сгенерированное изображение:

image

Сгенерированная математическая формула и капча с цветом:

image2

Почему используется формат SVG?

Нет необходимости ссылаться на модуль C++. Если вы думаете, что можно использовать регулярное выражение для сопоставления тега text, то это большая ошибка. Этот проект использует opentype.js для преобразования текста в путь. Другими словами, вы получаете что-то вроде этого: '<path fill="#444" d="M104.83 19.74L107.85 19.74L112 33.56L116.13 19.74L119.15 19.74L113.48 36.85...' такого пути без тега text. Поэтому капча в формате SVG может быть сложнее для распознавания, чем обычная картинка, поскольку вам необходимо сначала преобразовать её в другой формат.

Лицензия

MIT

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/viyo-svg-captcha.git
git@api.gitlife.ru:oschina-mirror/viyo-svg-captcha.git
oschina-mirror
viyo-svg-captcha
viyo-svg-captcha
master