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

Tutorial zur Verwendung von $attrs und $listeners in Vue

Inhaltsverzeichnis einführen Beispiel Zusammenfas...

Beispiel für eine MySQL-Datenbank-übergreifende Transaktions-XA-Operation

In diesem Artikel wird die MySQL-Datenbank-übergr...

15-minütiges paralleles Artefakt GNU Parallel Erste Schritte

GNU Parallel ist ein Shell-Tool zum parallelen Au...

Allgemeine Funktionen der MySQL-Grundlagen

Inhaltsverzeichnis 1. Allgemeine Funktionsklassif...

Python schreibt die Ausgabe in den CSV-Vorgang

Wie unten dargestellt: def test_write(selbst): Fe...

Beispiele für die korrekte Verwendung von Karten in WeChat-Miniprogrammen

Inhaltsverzeichnis Vorwort 1. Vorbereitung 2. Tat...

JS Cross-Domain-XML – mit AS URLLoader

Kürzlich erhielt ich eine Anforderung für eine Fun...

Verwendungsanweisungen für den Befehl „Docker Create“

Mit dem Befehl „Docker Create“ können Sie einen C...

Verschachtelte Verwendungsoperation für MySQL-Aggregatfunktionen

Zweck: Verschachtelte Verwendung von MySQL-Aggreg...

Lösung zur Bereinigung des Docker-Festplattenspeichers

Vor einiger Zeit stieß ich auf das Problem, dass ...

Detaillierte Fehlerbehebung bei Docker.service-Startfehlern

Führen Sie den folgenden Befehl aus, um einen Feh...