jQuery Canvas generiert ein Poster mit einem QR-Code

jQuery Canvas generiert ein Poster mit einem QR-Code

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.
2. Es gibt Unterschiede in der Textposition und Schriftgröße zwischen Apple- und Android-Telefonen.

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:
  • Implementierung des Parallaxeffekts des Apple TV-Posters basierend auf jQuery und CSS3
  • Verwenden Sie das jquery-Paket, um ein QR-Code-Bild aus einer Zeichenfolge zu generieren
  • Verwenden Sie jquery.qrcode, um einen QR-Code auf der Seite zu generieren und Chinesisch zu unterstützen
  • Verwenden Sie die jQuery-Komponente qrcode, um QR-Code und Anwendungshandbuch zu generieren
  • Verwenden Sie jquery.qrcode, um ein Beispiel für einen farbigen QR-Code zu generieren
  • JavaScript generiert einen QR-Code, der chinesische Schriftzeichen und Logos unterstützt (jquery.qrcode.js)
  • Das jQuery-Plugin qrcode generiert online einen QR-Code
  • Verwenden Sie das Plugin jQuery.Qrcode, um dynamisch QR-Codes auf dem Client zu generieren und ein benutzerdefiniertes Logo hinzuzufügen
  • Beispiel für die Verwendung von jquery.qrcode zum Online-Generieren eines QR-Codes
  • jQuery generiert SVG-Vektor-QR-Code

<<:  Eine kurze Diskussion zum Problem des Docker-Run-Containers im erstellten Status

>>:  Verwenden Sie js, um js-Funktionen in Iframe-Seiten aufzurufen

Artikel empfehlen

Win10 Installation von MySQL 5.7 MSI-Version des Tutorials mit Bildern und Text

Ich habe es im MSI-Format installiert, hauptsächl...

Detaillierte Erklärung, wie NGINX PV, UV und unabhängige IP der Website zählt

Nginx: PV, UV, unabhängige IP Jeder, der Websites...

Vue3 kapselt die Textskelett-Effektkomponente der Seitennavigation

Vue3-Projektkapselung Seitennavigation Textskelet...

JavaScript implementiert Informationen zur Kennwortfeldüberprüfung

In diesem Artikelbeispiel wird der spezifische Ja...

JS-Implementierung eines Karussellbeispiels

In diesem Artikel wird der spezifische JS-Code zu...

So veröffentlichen Sie statische Ressourcen in Nginx

Schritt Platzieren Sie die vorbereiteten statisch...

Zusammenfassung der Wissenspunkte zu MySQL-Index, Sperre und Transaktion

Dieser Artikel fasst die Wissenspunkte zu MySql-I...