In diesem Artikel wird der spezifische Code zur Verwendung von jQuery Canvas zum Generieren eines Posters mit einem QR-Code zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt Voraussetzung: Klicken Sie auf das Bild-Popup-Fenster, um ein Poster mit QR-Code zu generieren. Zugehörige Probleme: 1. Die generierten Bilder werden verschwommen und unklar sein. Importieren Sie die erforderlichen Dateien //jquery.js <script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> //Lösen Sie das Problem unscharfer und unklarer generierter Bilder<script src="/images/202010/hidpi-canvas.min.js"></script> Posterbild generieren <Skript> // Code ausführen$(function () { // Pixeldichte Ohne diesen Code kann das generierte Bild unscharf sein function getPixelRatio(context) { var backingStore = Kontext.backingStorePixelRatio || Kontext.webkitBackingStorePixelRatio || Kontext.mozBackingStorePixelRatio || Kontext.msBackingStorePixelRatio || Kontext.oBackingStorePixelRatio || Kontext.backingStorePixelRatio || 1; Rückgabewert (window.devicePixelRatio || 1) / backingStore; }; //Klick-Ereignis $(".myImg").click(function () { $(".dialog").fadeIn(); var dialogSrc = $(this).attr("src") var csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('Inhalt'); //2. Senden Sie eine Anfrage$.ajax({ URL: "xxxx", Typ: "Beitrag", Datentyp: "json", Überschriften: { 'X-CSRF-TOKEN': csrfToken }, //Anforderungsheader erfolgreich festlegen: Funktion (res) { var Leinwand = Dokument.createElement("Leinwand"); var Kontext = Canvas.getContext("2d"); var Verhältnis = getPixelRatio(Kontext) Leinwandbreite = 262 * Verhältnis; Leinwandhöhe = 450 * Verhältnis; Kontext.Rechteck(0, 0, Leinwandbreite * Verhältnis, Leinwandhöhe * Verhältnis); Kontext.Füllstil = "#fff"; Kontext.Füllen(); var meinBild2 = neues Bild(); //Hintergrundbild myImage2.src = dialogSrc //Terminal abrufen var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //Android-Terminal var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //iOS-Terminal myImage2.onload = function () { context.drawImage(myImage2, 0, 0, 262 * Verhältnis, 450 * Verhältnis); //Text var text = res.data.company + ',' + res.data.sales; var str = neues Array(); str = text.split(","); var hoch = 0 //Lösen Sie das Problem der Unterschiede bei der Textposition und Schriftgröße zwischen Apple- und Android-Telefonen for (var i = 0; i < str.length; i++) { wenn (istAndroid) { Kontext.Schriftart = "12px Calibri"; Kontext.Fülltext(str[i], 70, 390 + hoch) hoch += 20 } wenn (isiOS) { Kontext.Schriftart = "20px Calibri"; Kontext.Fülltext(str[i], 140, 450 * Verhältnis - 120 + Höhe) hoch += 40 } } var meinBild = neues Bild(); //QR-Code-Bild myImage.src = res.data.wxcode meinBild.crossOrigin = 'Anonym'; meinBild.onload = Funktion () { context.drawImage(meinBild, 30, 380 * Verhältnis, 48 * Verhältnis, 50 * Verhältnis); var base64 = canvas.toDataURL("image/jpeg", 1.0); var img = document.getElementById('meinPoster'); img.setAttribute('src', base64); } } }, Fehler: Funktion (e) { console.log('Ajax-Anforderungsausnahme, Ausnahmeinformationen lauten wie folgt:', e); } }); }); //Popup-Fenster schließen$(".close").click(function () { $(".dialog").fadeOut(); }) }); </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:
|
<<: Eine kurze Diskussion zum Problem des Docker-Run-Containers im erstellten Status
>>: Verwenden Sie js, um js-Funktionen in Iframe-Seiten aufzurufen
Hintergrund Ein Kollege arbeitet an seinem Sicher...
1. Entdecken Sie das Problem © ist das Co...
Inhaltsverzeichnis Konfiguration NFS-Server (nfs....
Wann wird die Tabelle eingesetzt? Tabellen werden...
Zuerst: <abbr> oder <acronym> Diese be...
Ubuntu 20.04 wurde im April 2020 offiziell veröff...
Führen Sie zuerst den Docker-Container aus Führen...
1. Bauteile 1. Ein Formular muss Formularfelder e...
Vorwort Um zum Originalcode kompatibel zu sein, b...
Inhaltsverzeichnis 1. Seiten-Rendering 2. Tags hi...
Inhaltsverzeichnis 1. Datenbankmodul 1.1 Datenban...
Verwendung der Zeitdifferenzfunktionen TIMESTAMPD...
Ubuntu 18.04, andere Versionen von Ubuntu Frage: ...
Schritte zum Konfigurieren des Whitelist-Zugriffs...
Was ist hohe Parallelität? Die standardmäßigen Li...