In diesem Artikelbeispiel wird der spezifische Code von Vue zur Implementierung des Grafiküberprüfungscodes zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt Effektbild:oder oder oder Code:Prüfcode-Komponente: src/common/sIdentify.vue <Vorlage> <div Klasse="s-canvas"> <canvas id="s-canvas" :width="Inhaltsbreite" :height="Inhaltshöhe"></canvas> </div> </Vorlage> <Skript> Standard exportieren { Name: 'SIdentify', Requisiten: { Identifizierungscode: Typ: Zeichenfolge, Standard: „1234“ }, SchriftgrößeMin: { Typ: Nummer, Standard: 18 }, SchriftgrößeMax: { Typ: Nummer, Standard: 40 }, HintergrundFarbeMin: { Typ: Nummer, Standard: 180 }, HintergrundFarbeMax: { Typ: Nummer, Standard: 240 }, FarbeMin: Typ: Nummer, Standard: 50 }, FarbeMax: { Typ: Nummer, Standard: 160 }, LinienfarbeMin: { Typ: Nummer, Standard: 40 }, ZeilenfarbeMax: { Typ: Nummer, Standard: 180 }, PunktFarbeMin: { Typ: Nummer, Standard: 0 }, PunktFarbeMax: { Typ: Nummer, Standard: 255 }, Inhaltsbreite: { Typ: Nummer, Standard: 111 }, Inhaltshöhe: { Typ: Nummer, Standard: 38 } }, Methoden: { // Erzeuge eine Zufallszahl randomNum(min, max) { gibt Math.floor(Math.random() * (max - min) + min) zurück }, // Erzeuge eine zufällige Farbe randomColor(min, max) { sei r = diese.Zufallszahl(min, max) sei g = diese.Zufallszahl(min, max) sei b = diese.Zufallszahl(min, max) gibt 'rgb(' + r + ',' + g + ',' + b + ')' zurück }, zeichneBild() { let Leinwand = Dokument.getElementById('s-canvas') lass ctx = canvas.getContext('2d') ctx.textBaseline = "unten" // Zeichne den Hintergrund ctx.fillStyle = this.randomColor(this.backgroundColorMin, this.backgroundColorMax) ctx.fillRect(0, 0, diese.Inhaltsbreite, diese.Inhaltshöhe) // Text zeichnen für (let i = 0; i < this.identifyCode.length; i++) { dies.drawText(ctx, dies.identifyCode[i], i) } // this.drawLine(ctx) // Interferenzlinie zeichnen // this.drawDot(ctx) // Interferenzpunkt zeichnen}, // Text zeichnen drawText(ctx, txt, i) { ctx.fillStyle = diese.randomColor(diese.colorMin, diese.colorMax) ctx.font = diese.randomNum(diese.fontSizeMin, diese.fontSizeMax) + 'px SimHei' sei x = (i + 1) * (this.contentWidth / (this.identifyCode.length + 1)) sei y = this.randomNum(this.fontSizeMax, this.contentHeight - 5) var deg = this.randomNum(-30, 30) // Zeichendrehwinkel (vorzugsweise nicht mehr als 45 Grad) // Koordinatenursprung und Drehwinkel ändern ctx.translate(x, y) ctx.rotate(Grad * Math.PI / 180) ctx.fillText(txt, 0, 0) // Koordinatenursprung und Drehwinkel wiederherstellen ctx.rotate(-deg * Math.PI / 180) ctx.translate(-x, -y) }, zeichneLinie(ctx) { // Zeichne Interferenzlinien für (let i = 0; i < 8; i++) { ctx.strokeStyle = diese.randomColor(diese.lineColorMin, diese.lineColorMax) ctx.beginPath() ctx.moveTo(diese.randomNum(0, diese.Inhaltsbreite), diese.randomNum(0, diese.Inhaltshöhe)) ctx.lineTo(diese.randomNum(0, diese.Inhaltsbreite), diese.randomNum(0, diese.Inhaltshöhe)) ctx.stroke() } }, Punkt zeichnen(ctx) { // Zeichne Interferenzpunkte für (let i = 0; i < 100; i++) { ctx.fillStyle = diese.randomColor(0, 255) ctx.beginPath() ctx.arc(diese.randomNum(0, diese.Inhaltsbreite), diese.randomNum(0, diese.Inhaltshöhe), 1, 0, 2 * Math.PI) ctx.fill() } } }, betrachten: identifiziereCode() { dieses.drawPic() } }, montiert() { dieses.drawPic() } } </Skript> Übergeordnete Komponente <Vorlage> <div> <div>Verifizierungscode-Test</div> <div @click="refreshCode()" class="code" style="cursor:pointer;" title="Klicken, um den Bestätigungscode zu wechseln"> <s-identify :identifyCode="identifyCode"></s-identify> </div> </div> </Vorlage> <Skript> importiere { defineComponent } von „vue“; importiere sIdentify aus "@/common/sIdentify.vue"; // importiere Axios von „Axios“ exportiere StandarddefiniereKomponente({ Name: 'WasserzeichenTest', Komponenten: { sIdentify }, Daten() { zurückkehren { Identifizierungscode: "", identifyCodes: ['0','1','2','3','4','5','6','7','8','9','a','b','c','d'], //Fügen Sie die gewünschten Zeichen entsprechend dem tatsächlichen Bedarf hinzu} }, montiert() { dies.refreshCode() }, nicht eingehängt() { }, Methoden: { // Zufallszahl generieren randomNum(min, max) { max = max + 1 gibt Math.floor(Math.random() * (max - min) + min) zurück; }, // Prüfcode aktualisieren refreshCode() { dieser.identifyCode = ""; dies.makeCode(dies.identifyCodes, 4); console.log('Aktueller Bestätigungscode:',this.identifyCode); }, // Verifizierungscode zufällig generieren string makeCode(data, len) { console.log('Daten, Länge:', Daten, Länge) für (sei i = 0; i < len; i++) { dieser.identifyCode += dieser.identifyCodes[diese.randomNum(0, dieser.identifyCodes.length-1)] } }, }, }); </Skript> Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Detaillierte Analyse des langsamen Abfrageproblems beim Senden von MySQL-Daten
>>: So richten Sie Referer in Nginx ein, um Bilddiebstahl zu verhindern
Einführung Das Modul, das die Anzahl gleichzeitig...
Finden Sie das Problem Als ich kürzlich die vorhe...
Inhaltsverzeichnis 1. Einleitung 2. Bereiten Sie ...
Denken Sie unbedingt daran, Ihre Daten zu sichern...
Konvertierung zwischen RGBA- und Filterwerten unt...
Offizielle Website-Adresse von CentOS https://www...
Ubuntu 20.04 wurde im April 2020 offiziell veröff...
Eine kurze Erläuterung des Navigationsfensters in...
Inhaltsverzeichnis 1. Die Bedeutung von Nutzern u...
Vorwort: Wenn Sie eine SQL-Anweisung in MySQL aus...
Ereignisschleife in js Da JavaScript ein Single-T...
Centos7-Switch-Boot-Kernel Hinweis: Bei Bedarf wi...
Heutzutage beginnen viele Leute damit, Websites z...
Vorwort Vor kurzem habe ich an einer Berichtsfunk...
Einige Optimierungsregeln für Browser-Webseiten S...