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

Korrekte Änderungsschritte für das Standardnetzwerksegment von Docker

Hintergrund Ein Kollege arbeitet an seinem Sicher...

Centos8 erstellt NFS basierend auf KDC-Verschlüsselung

Inhaltsverzeichnis Konfiguration NFS-Server (nfs....

Detaillierte Erläuterung der praktischen Anwendung des HTML-Tabellenlayouts

Wann wird die Tabelle eingesetzt? Tabellen werden...

6 ungewöhnliche HTML-Tags

Zuerst: <abbr> oder <acronym> Diese be...

So installieren Sie vncserver in Ubuntu 20.04

Ubuntu 20.04 wurde im April 2020 offiziell veröff...

Docker verwendet Root, um in den Container zu gelangen

Führen Sie zuerst den Docker-Container aus Führen...

Detaillierte Erläuterung des Zeitdarstellungsbeispiels des Linux-Zeitsubsystems

Vorwort Um zum Originalcode kompatibel zu sein, b...

MySQL ändert die Standard-Engine und Zeichensatzdetails

Inhaltsverzeichnis 1. Datenbankmodul 1.1 Datenban...

Verwendung der MySQL-Zeitdifferenzfunktionen TIMESTAMPDIFF und DATEDIFF

Verwendung der Zeitdifferenzfunktionen TIMESTAMPD...

So konfigurieren Sie den Whitelist-Zugriff in MySQL

Schritte zum Konfigurieren des Whitelist-Zugriffs...