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
Dieser Artikel beschreibt anhand von Beispielen d...
Hinweis: Da .NET Framework nicht im Core-Modus au...
Ich habe es im MSI-Format installiert, hauptsächl...
Nginx: PV, UV, unabhängige IP Jeder, der Websites...
Inhaltsverzeichnis Unterschied zwischen MVC und M...
1. Einen Benutzer anlegen: Befehl: CREATE USER ...
Vue3-Projektkapselung Seitennavigation Textskelet...
In diesem Artikelbeispiel wird der spezifische Ja...
In diesem Artikel wird der spezifische JS-Code zu...
Schritt Platzieren Sie die vorbereiteten statisch...
Heutzutage werden Datenbankoperationen immer häuf...
Vorwort Im vorherigen Artikel wurden zwei Datenty...
Quellcode-Vorschau: https://github.com/jdf2e/nutu...
Dieser Artikel fasst die Wissenspunkte zu MySql-I...
clip-path CSS-Eigenschaften verwenden Clipping, u...