Генерация капчи в формате SVG в Node.js.
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);
});
svgCaptcha.create(options)
Если параметры не указаны, сгенерированное изображение капчи содержит 4 символа.
size
: 4 // длина капчиignoreChars
: '0o1i' // символы, исключаемые из капчиnoise
: 1 // количество линий помехnoisewidth
: 1 // толщина линий помехcolor
: true // наличие цвета у символов капчи, по умолчанию нет, если установлен фон, то по умолчанию естьbackground
: '#cc9966' // цвет фона изображения капчиВозвращаемый объект имеет следующие свойства:
data
: string // путь SVGtext
: 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()
, чтобы получить изображение (^_^)/
По умолчанию сгенерированное изображение:
Сгенерированная математическая формула и капча с цветом:
Нет необходимости ссылаться на модуль 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 может быть сложнее для распознавания, чем обычная картинка, поскольку вам необходимо сначала преобразовать её в другой формат.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )