Bei Verwendung des Knotens für die Webentwicklung werden viele Orte benötigt, an denen Bestätigungscodes benötigt werden. Zuvor wurde nach GitHub gesucht, gab es einige Klassenbibliotheken wie Node-Captcha, die alle auf Grafikbibliotheken oder Software von Drittanbietern beruhen. Als ich beispielsweise das Cario der Grafikbibliothek installierte, war es viel Aufwand, aber wir haben nur ein wenig der kleinen Funktionen dieser Grafikbibliotheken verwendet, z.
Lassen Sie uns zunächst die CIMG C ++ - Grafikbibliothek vorstellen. CIMG ist eine plattformübergreifende C ++-Bildverarbeitungsbibliothek, die eine Reihe von Funktionen wie Laden, Verarbeitung, Anzeige und Speichern bietet. Das Attraktivste ist, dass die gesamte Grafikbibliothek nur eine Cimg.H -Datei ist, daher ist sie sehr tragbar, grün und umweltfreundlich. Es kann zusammengestellt und überall dort verwendet werden, ohne dass Sie eine große Push -Abhängigkeit installieren. Daher wollte ich diese CIMG -Grafikbibliothek verwenden, um eine einfache Demo zu erstellen, beginnend mit der Funktion der Implementierung des Verifizierungscodes. Natürlich kann ich diese Bibliothek vollständig verwenden, um andere Funktionen wie das Schneiden von Bildern auszuführen.
Das CCAP -Modul basiert auf der Kapselung der CIMG -Grafikbibliothek, sodass es vom Knoten verwendet werden kann. Aufgrund der Portabilität der CIMG-Grafikbibliothek kann das CCAP-Modul unabhängig funktionieren, ohne sich auf eine andere Grafikbibliothek oder Software von Drittanbietern zu verlassen. Mit anderen Worten, wenn Sie nur einen einfachen Verifizierungscode generieren möchten, benötigen Sie einfach das CCAP -Modul.
1. Installation:
Allgemeine Methode: NPM CCAP installieren
Oder laden Sie es über GitHub herunter, Adresse: https://github.com/doumblespout/ccap
Hinweis: Während des Installationsprozesses kann es Fehler geben. Bitte installieren Sie das entsprechende Abhängigkeitspaket gemäß der Fehleraufforderung.
2. Leistung:
Die Geschwindigkeit der Erzeugung von Verifizierungscodes auf einem 2CPU-Linux-Server von 64-Bit-Server kann 1200-mal/s erreichen. Das vom Test erzeugte Bild ist BMP. Die JPEG -Bildungscode -Erzeugungsgeschwindigkeit von JPEG beträgt etwa 600 Mal pro Sek.
3.. Deklarationsmethode:
Die Codekopie lautet wie folgt:
var ccap = require ('ccap');
var captcha1 = ccap ();
var captcha2 = CCAP (Breite, Höhe, Offset);
var captcha3 = ccap ({{
Breite: 256, // Breite festlegen, Standard ist 256
Eine CCAP -Klasse kann über den obigen Code instanziiert werden. 1. Es werden keine Parameter übergeben, alle Standardparameter werden zum Generieren von Verifizierungscodes verwendet. 2. Pass nur Breite, Höhe und Versatz, um die Größe des Bildes anzupassen, und das Intervall zwischen den Zeichen im Bild. 3. Übergeben Sie ein Objekt. Zusätzlich zu Breite, Höhe und Offset besteht auch die Bildqualität und die Methode zur Erzeugung von Zufallszahlen. Das CCAP -Modul verwendet die Zeichenfolge, die von der benutzerdefinierten Funktion als Inhalt des Bildüberprüfungscodes zurückgegeben wird. Die Standardeinstellung ist 0-9 und die 6-Bit-Zeichenfolge von AZ wird befolgt.
Theoretisch können viele verschiedene CCAP-Instanzen erzeugt werden, und sie haben keinen Einfluss auf einander. Selbst wenn Sie Multi-Process-Knoten über Cluster beginnen und gleichzeitig Überprüfungscodes erzeugen, hat es keinen Einfluss, sich gegenseitig zu sperren.
Die Bildqualität gilt nur für JPEG -Bilder. Wenn keine JPEG LIB -Bibliothek installiert ist, können Sie nur unkomprimierte BMP -Grafiken verwenden, was relativ groß ist, die Erzeugungsgeschwindigkeit ist jedoch relativ schnell.
4. Methode verwenden, get ():
Die Codekopie lautet wie folgt:
Höhe: 60, // Höhenhöhe, Standard ist 60 60
Offset: 40, // Textabstand festlegen, Standard ist 40
Qualität: 100, // Bildqualität festlegen, Standard ist 50
generieren: function () {// Die Funktion zum Generieren von Captcha -Text benennen
// hier Captcha -Text generieren
Geben Sie den Text zurück; // Geben Sie den Captcha -Text zurück
}
});
Nachdem Sie die CCAP -Klasse instanziiert haben, erhalten Sie das Captcha -Objekt. Dieses Objekt hat nur eine externe Methode, get (). Jedes Mal, wenn diese Methode aufgerufen wird, gibt sie den Verifizierungscodepuffer und den entsprechenden Inhalt des Textzeichenfolge zurück und speichert ihn in einem Array mit einer ähnlichen Struktur:
Die Codekopie lautet wie folgt:
["Captcha Text", "Bildpuffer"]
5. Ein einfaches Webbeispiel:
Die Codekopie lautet wie folgt:
var http = required ('http');
var ccap = require ('ccap') (); // instanziierte CCAP -Klasse
http.createServer (Funktion (Anfrage, Antwort) {
if (request.url == '/favicon.ico') return response.end (' '); // Intercept Request favicon.ico
var ary = ccap.get ();
var txt = ary [0];
var buf = ary [1];
Antwort.end (buf);
console.log (txt);
}). Hören (8124);
console.log ('Server, der unter http://127.0.0.1:8124/' ausgeführt wird);
Hinweis: Einige Codeparameter können nach ihrer eigenen Umgebung geändert werden.