Die hier verwendeten Technologien sind:
Gehen Sie zuerst zum Erlebnislink: g.cuggz.com/. Hinweis: Sie können auf den obigen Link klicken, um ihn zu verwenden, aber mein Domänenname wurde von TX blockiert und ich lege immer noch Einspruch ein, sodass ich ihn nicht in QQ oder WeChat öffnen kann. Sie müssen den Link in den Browser kopieren, um ihn anzuzeigen und zu verwenden. Hier ist ein Screenshot des Gadgets: 1. SeitenlayoutZu diesem Teil werde ich nicht viel sagen, sondern direkt zum Code gehen: <div Klasse="Wrapper"> <!-- Auswahlfeld --> <div Klasse="Hauptbox"> <a class="prev" onClick='changeHat()'></a> <div Klasse="Haupt-Bild"> <div id="Inhalt"> <Leinwand-ID='cvs'></Leinwand> </div> </div> <a class="next" onClick='changeHat()'></a> </div> <!-- Diagramm exportieren --> <img id='export-img' alt='Exklusiver Avatar zum Nationalfeiertag' src='' crossorigin="anonymous"/> <!-- Aktionsschaltfläche --> <div Klasse="operation-btns"> <a Klasse="Upload-btn"> <Eingabe-ID='Hochladen' Typ='Datei' Onchange='Viewer()' Stil='Deckkraft: 0;'/> </a> <a Klasse = "export-btn" bei Klick = "exportFunc()"></a> </div> </div> <!-- Vorlage --> <div Stil='Anzeige: keine'> <img id='img' src='' alt='' /> <img Klasse = "ausblenden" id = "hat0" src = "img/1.png" /> <img Klasse = "ausblenden" id = "hat1" src = "img/2.png" /> <img class='ausblenden' id='hat2' src='img/3.png' /> <img class='ausblenden' id='hat3' src='img/4.png' /> <img class='ausblenden' id='hat4' src='img/5.png' /> <img class='ausblenden' id='hat5' src='img/6.png' /> <img class='hide' id='hat6' src='img/7.png' /> </div> Diese Seite ist relativ einfach. Auf der Außenseite befindet sich ein großes Hintergrundbild, in der Mitte ein Avatar-Anzeigefeld und eine Schaltfläche zum Wechseln der Vorlage sowie darunter eine Schaltfläche zum Hochladen und eine Schaltfläche zum Herunterladen. Nachdem das Seitenlayout abgeschlossen ist, ist es Zeit, den Stil zu schreiben. Der CSS-Code lautet wie folgt: Körper, html { Mindesthöhe: 100 %; Breite: 100 %; Benutzerauswahl: keine; Schriftgröße: 18px; } .wrapper { Breite: 100 %; Höhe: 100%; maximale Breite: 620px; maximale Höhe: 800px; Rand: 0 automatisch; Hintergrundbild: url('../img/bg.png'); Hintergrundwiederholung: keine Wiederholung; Hintergrundgröße: 100 % 100 %; Polsterung oben: 13em; } #export-img { Anzeige: keine; Rand: 0 automatisch; Breite: 250px; Höhe: 250px; } .Hauptbox { Anzeige: Flex; Elemente ausrichten: zentrieren; Inhalt ausrichten: zentriert; } .Hauptbox .Weiter, .Hauptbox .vorher { Hintergrundbild: URL('../img/next.png'); Hintergrundgröße: enthalten; Randradius: 50 %; Breite: 2,275rem; Höhe: 2.275rem } .Hauptbox .vorher { transformieren: drehen (180 Grad) } .Hauptbox .Hauptbild { Rand: 0,75rem; Hintergrund: #fff; Rand: .25rem durchgezogen #fbe6b5; Randradius: .75rem; Schriftgröße: 0 } #Inhalt { Randradius: .5rem; Position: relativ; Breite: 9,5rem; Höhe: 9,5rem; Rand links: 50 %; transformieren: übersetzenX(-50%); Überlauf: versteckt } .operation-btns { Anzeige: Flex; Elemente ausrichten: zentrieren; Inhalt ausrichten: zentriert; Flex-Richtung: Spalte; Rand oben: .75rem } .operation-btns .upload-btn { Breite: 11,6rem; Höhe: 3,6rem; Hintergrundgröße: 100 % 100 %; Hintergrundbild: URL('../img/upload.png') } .operation-btns .export-btn { Anzeige: keine; Breite: 11,6rem; Höhe: 3,75rem; Hintergrundgröße: 100 % 100 %; Hintergrundbild: URL('../img/export.png') } Hier ist nur eine einfache Implementierung, die nur als Referenz dient. Es gibt noch viele Bereiche, die optimiert werden können und die hier nicht geändert werden. Wer möchte, kann sie selbst anpassen. 2. Bild-Upload und AnzeigeDer nächste Schritt besteht darin, den Logikteil zu implementieren. Zunächst müssen mehrere globale Variablen definiert werden, die später verwendet werden: let canvasFabric; // Canvas-Instanz let hat = "hat0"; // Aktuelle Vorlagenklasse let hatInstance; // Instanz der Vorlagenebene const screenWidth = document.getElementById("content").scrollHeight; // Höhe des Inhaltsfelds Danach müssen wir das hochgeladene Bild verarbeiten und auf der Seite anzeigen: Funktion Betrachter() { // Hochgeladene Bilddatei abrufen const file = document.getElementById("upload").files[0]; // Holen Sie sich das Tag, das das Bild anzeigen muss const img = document.getElementById("img"); // Erstellen Sie eine Datei zum Lesen des Dateiobjekts const reader = new FileReader(); if (Datei) { //Konvertiere die Datei in Base64 reader.readAsDataURL(Datei); // Wird ausgelöst, wenn die Datei erfolgreich gelesen wurde reader.onload = () => { // Weisen Sie dem Tag, in dem das Bild angezeigt werden soll, die Base64-URL zu. img.src = reader.result; // Bild wurde geladen, Trigger img.onload = () => img2Cvs(img); } } anders { img.src = "" } } Zum Einsatz kommt hierbei das
Das heißt, das hochgeladene Bild wird in eine URL im Damit ist das Hochladen und Anzeigen des Bildes abgeschlossen. Als Nächstes ist es an der Zeit, eine Leinwand zu initialisieren. 3. Initialisieren Sie die LeinwandAm Ende des obigen Codes wird img.load ausgeführt. Das Onload-Ereignis wird hier unmittelbar nach dem Laden des Bildes ausgeführt. Nachdem das Bild angezeigt wurde, wird die Methode img2Cvs ausgeführt. Diese Methode wird hauptsächlich verwendet, um eine Leinwand zu initialisieren und einige Elemente der Seite anzuzeigen und auszublenden. Die
Sie können die Bibliothek fabric.js über den npm-Befehl installieren: npm installiere Fabric --save Sie können es auch über CDN referenzieren: <script src="http://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.4.6/fabric.min.js"></script> Schauen wir uns an, wie die Methode Funktion img2Cvs(img) { // Leinwand abrufen und anzeigen und die Leinwandgröße auf die Größe des Bildes einstellen const cvs = document.getElementById("cvs"); cvs.width = Bildbreite; cvs.height = img.height; cvs.style.display = "Block"; // Erstellen Sie eine Leinwand und legen Sie ihre Position und ihr Hintergrundbild fest canvasFabric = new fabric.Canvas("cvs", { Breite: Bildschirmbreite, Höhe: Bildschirmbreite, Hintergrundbild: neues Stoffbild (Bild, { scaleX: Bildschirmbreite / Bildbreite, scaleY: Bildschirmbreite / Bildhöhe }) }); // Vorlage wechseln changeHat(); // Schaltfläche zum Hochladen des Bilds ausblenden und Schaltfläche zum Herunterladen des Bilds anzeigen document.getElementsByClassName("upload-btn")[0].style.display = "none"; document.getElementsByClassName("export-btn")[0].style.display = "block"; }
Nachdem Sie die Leinwand erstellt haben, müssen Sie zur ersten Vorlage wechseln, die Schaltfläche zum Hochladen des Bildes ausblenden und die Schaltfläche zum Herunterladen des Avatars anzeigen. Damit ist der erste Schritt abgeschlossen. Sehen wir uns nun an, wie vorhandene Vorlagen gewechselt werden. 4. Vorlage wechselnAls Nächstes sehen wir uns an, wie Sie zwischen Vorlagen wechseln: Funktion changeHat() { // Aktuelle Vorlage ausblenden document.getElementById(hat).style.display = "none"; // Alle Vorlagen abrufen const hats = document.getElementsByClassName("hide"); Hut = "Hut" + (+Hut.replace("Hut", "") + 1) % Hüte.Länge; // Aktuelle Vorlage abrufen und anzeigen const hatImage = document.getElementById(hat); hatImage.style.display = "Block"; // Wenn eine Ebene aktuell existiert, entfernen Sie sie if (hatInstance) { canvasFabric.entfernen(hatInstance) } // Füge die aktuelle Vorlage als Layer-Objekt hinzu hatInstance = new fabric.Image(hatImage, { oben: 0, links: 0, scaleX: Bildschirmbreite / Hutbild.Breite, scaleY: Bildschirmbreite / Hutbild.Höhe, Eckfarbe: "#0b3a42", Eckstrichfarbe: "#fff", Eckstil: "Kreis", transparentCorners: false, rotierenderPunktversatz: 30 }); // Legen Sie fest, dass das Layer-Objekt nicht dehnbar ist. hatInstance.setControlVisible({ mt: falsch, mb: falsch, ml: falsch, herr: falsch, bl: falsch, br: falsch, tl: falsch, tr: falsch, mtr: falsch, }) // Fügen Sie die Ebene zur Leinwand hinzu canvasFabric.add(hatInstance); } Standardmäßig verfügen fabric.js-Elemente über acht Punkte zum Skalieren von Objekten. Hier möchten wir nicht, dass Benutzer Schließlich fügen wir die von der Vorlage generierte Ebene zur Leinwand hinzu. Hier verwenden wir die Add-Methode, die ein von Fabric bereitgestelltes Ereignis ist. Im Folgenden sind die allgemeinen Ereignisse aufgeführt, die offiziell von Fabric.js bereitgestellt werden:
5. Bild ausgebenNach den obigen Schritten haben wir eine Leinwand initialisiert. Der Hintergrund der Leinwand ist das Bild, das wir hochgeladen haben. Auf der Leinwand befindet sich außerdem eine Ebene, nämlich die von uns gewählte Vorlage. Der letzte Schritt besteht darin, das synthetisierte Bild auszugeben. Sehen wir uns an, was passiert, wenn Sie auf die Schaltfläche „Bild herunterladen“ klicken: Funktion exportFunc() { // Auswahlfeld, Upload- und Download-Buttons und Canvas ausblenden document.getElementsByClassName("main-box")[0].style.display = "none"; document.getElementsByClassName("operation-btns")[0].style.display = "keine"; document.getElementById("cvs").style.display = "keine"; // URL aus dem Canvas generieren und dem entsprechenden Tag zur Anzeige zuweisen const exportImage = document.getElementById("export-img"); exportImage.style.display = "Block"; exportImage.src = canvasFabric.toDataURL({ Breite: Bildschirmbreite, Höhe: Bildschirmbreite }); // Laden Sie das generierte Bild herunter window.confirm("Möchten Sie den Avatar herunterladen") ? download(exportImage.src, "National Day avatar", 'image/png') : void 0 } Hier verwenden wir die Methode Zum Schluss wird noch eine optionale Funktion hinzugefügt, die den generierten Avatar herunterladen soll. Dabei kommt die Bibliothek Dies sind alle Funktionen dieser kleinen Anwendung. Es ist nur eine einfache Implementierung und es gibt noch einen Fehler. Es bietet hauptsächlich eine Implementierungsidee. Da ich vorher noch nie mit dem Konzept einer Leinwand in Berührung gekommen war, habe ich dieses Mal eine Menge gelernt. Ich werde in Zukunft mehr über seine Verwendung lernen, wenn ich Zeit habe, Damit ist dieser Artikel über den Nationalfeiertag abgeschlossen. Er enthält die Verwendung von JS zur Implementierung eines Tools zum Generieren von Avataren im Stil des Nationalfeiertags sowie den detaillierten Implementierungsprozess. Weitere verwandte Inhalte zur Verwendung von JS zum Generieren von Avataren im Stil des Nationalfeiertags finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den unten aufgeführten verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung des MySQL-Datenbankparadigmas
>>: Warum wird mir die Zugriffsschnittstelle für Docker Tomcat nicht angezeigt?
brauchen: Normalerweise wollen Websites verhinder...
Vorwort smb ist der Name eines Protokolls, das fü...
Inhaltsverzeichnis Was macht die Funktion COUNT? ...
Es gibt viele Versionen der Java-Sprache. Zusätzl...
Ich habe in der Toutiao IT School einen Artikel g...
1. Verwendung des Iframe-Tags <br />Wenn es ...
Schauen Sie sich den Code an: Code kopieren Der Co...
Nginx (Engine x) ist ein leistungsstarker HTTP- u...
1. Der Unterschied zwischen Forward-Proxy und Rev...
In der folgenden Analyse geht es um Produktdesign...
Vorwort Als ich zuvor das Front-End studierte, be...
Inhaltsverzeichnis Projekthintergrund Verbesserun...
Der erste Punkt ist, dass Menschen die Semantik vo...
XML-Dateien sollten so weit wie möglich in UTF-8 ...
Inhaltsverzeichnis Systemupdate-Konfiguration Änd...