html2canvas vs dom-to-image
"DOM zu Bild Konvertierung" npm-Pakete Vergleich
3 Jahre
html2canvasdom-to-imageÄhnliche Pakete:
Was ist DOM zu Bild Konvertierung?

Bibliotheken zur Konvertierung von DOM-Elementen in Bilder oder Canvas in JavaScript sind nützlich für Anwendungen, die Screenshots von Webseiten, das Erstellen von Bildern aus HTML-Inhalten oder das Rendern von grafischen Inhalten auf der Client-Seite benötigen. Diese Bibliotheken ermöglichen es Entwicklern, visuelle Inhalte programmgesteuert zu erfassen, was für Funktionen wie das Herunterladen von Bildern, das Erstellen von Miniaturansichten oder das Erfassen von Inhalten für soziale Medien nützlich sein kann. dom-to-image ist eine Bibliothek, die DOM-Elemente in PNG-, JPEG- oder SVG-Bilder konvertiert, während html2canvas ein Canvas-Element aus DOM-Inhalten rendert, das dann in ein Bild umgewandelt werden kann.

npm-Download-Trend
GitHub Stars Ranking
Statistik-Detail
Paket
Downloads
Stars
Größe
Issues
Veröffentlichung
Lizenz
html2canvas4,055,467
31,5163.38 MB1,041-MIT
dom-to-image233,842
10,688-333vor 8 JahrenMIT
Funktionsvergleich: html2canvas vs dom-to-image

Bildformat Unterstützung

  • html2canvas:

    html2canvas hingegen rendert den Inhalt eines DOM-Elements in ein Canvas-Element, das dann in ein PNG-Bild umgewandelt werden kann. Es unterstützt jedoch keine direkte JPEG- oder SVG-Ausgabe, was es in Bezug auf die Formatvielfalt weniger flexibel macht.

  • dom-to-image:

    dom-to-image unterstützt die Konvertierung von DOM-Elementen in mehrere Bildformate, einschließlich PNG, JPEG und SVG. Es ermöglicht Entwicklern, das gewünschte Format auszuwählen und bietet Flexibilität bei der Handhabung von Bildern in verschiedenen Anwendungen.

SVG Unterstützung

  • html2canvas:

    html2canvas kann SVGs rendern, behandelt sie jedoch als Rastergrafiken, was zu einem Verlust der Vektoreigenschaften führen kann. Dies kann problematisch sein, wenn die Skalierbarkeit und Klarheit der SVG-Grafiken wichtig ist.

  • dom-to-image:

    dom-to-image bietet native Unterstützung für SVG-Elemente und kann sie genau in Bilder konvertieren. Dies macht es zu einer ausgezeichneten Wahl für Anwendungen, die Vektorgrafiken und deren genaue Darstellung benötigen.

CSS-Stil Unterstützung

  • html2canvas:

    html2canvas hingegen versucht, alle angewendeten CSS-Stile, einschließlich Hintergründe, Schatten und Transformationen, genau zu erfassen. Es bietet eine umfassendere Unterstützung für komplexe Stile, was es zu einer besseren Wahl für die Erfassung von Inhalten mit detaillierten Designs macht.

  • dom-to-image:

    dom-to-image behält die meisten CSS-Stile bei, wenn es DOM-Elemente in Bilder konvertiert. Es unterstützt jedoch möglicherweise nicht alle komplexen Stile oder Animationen, insbesondere solche, die mit CSS-Variablen oder -Animationen erstellt wurden.

Benutzerdefinierte Render-Optionen

  • html2canvas:

    html2canvas bietet ebenfalls einige Anpassungsoptionen, z. B. das Festlegen der Canvas-Größe und das Anpassen der Bildqualität. Es ist jedoch weniger flexibel in Bezug auf das Ausschließen von Elementen oder das Anpassen von Stilen während des Renderns.

  • dom-to-image:

    dom-to-image ermöglicht es Entwicklern, benutzerdefinierte Render-Optionen festzulegen, z. B. das Festlegen von Bildgrößen, das Anpassen von Hintergrundfarben und das Ausschließen bestimmter Elemente aus der Konvertierung. Diese Flexibilität ermöglicht eine bessere Kontrolle über den Renderprozess.

Leistung und Ressourcenverbrauch

  • html2canvas:

    html2canvas kann jedoch bei der Erfassung großer oder komplexer DOM-Strukturen ressourcenintensiv sein, da es versucht, alle Inhalte, einschließlich Hintergründe und Stile, zu rendern. Dies kann zu längeren Ladezeiten und höherem Speicherverbrauch führen.

  • dom-to-image:

    dom-to-image ist in der Regel ressourcenschonender, da es nur die angegebenen DOM-Elemente rendert und nicht den gesamten Inhalt eines Containers. Dies führt zu schnelleren Konvertierungen und einem geringeren Einfluss auf die Leistung der Anwendung.

Codebeispiel

  • html2canvas:

    Hier ist ein Beispiel, wie man html2canvas verwendet, um einen Screenshot eines DOM-Elements zu erstellen:

    import html2canvas from 'html2canvas';
    
    const element = document.getElementById('my-element'); // Das DOM-Element, das Sie erfassen möchten
    
    html2canvas(element)
      .then((canvas) => {
        document.body.appendChild(canvas); // Canvas zur Anzeige hinzufügen
    
        // Canvas als Bild speichern
        const link = document.createElement('a');
        link.href = canvas.toDataURL('image/png');
        link.download = 'screenshot.png';
        link.click(); // Automatischer Download
      })
      .catch((error) => {
        console.error('Fehler beim Erstellen des Screenshots:', error);
      });
    
  • dom-to-image:

    Hier ist ein einfaches Beispiel, wie man dom-to-image verwendet, um ein DOM-Element in ein Bild zu konvertieren:

    import domtoimage from 'dom-to-image';
    import { saveAs } from 'file-saver'; // Zum Speichern der Datei
    
    const node = document.getElementById('my-node'); // Das DOM-Element, das Sie konvertieren möchten
    
    domtoimage.toPng(node)
      .then((dataUrl) => {
        const img = new Image();
        img.src = dataUrl;
        document.body.appendChild(img); // Bild zur Anzeige hinzufügen
    
        // Bild speichern
        const link = document.createElement('a');
        link.href = dataUrl;
        link.download = 'my-image.png';
        link.click(); // Automatischer Download
      })
      .catch((error) => {
        console.error('Fehler beim Konvertieren des DOM-Elements:', error);
      });
    
Wie man wählt: html2canvas vs dom-to-image
  • html2canvas:

    Wählen Sie html2canvas, wenn Sie eine umfassendere Lösung benötigen, die den gesamten Inhalt eines DOM-Elements einschließlich CSS-Stile, Hintergründe und komplexe Layouts erfasst. Es ist ideal für Screenshots von Webseiten.

  • dom-to-image:

    Wählen Sie dom-to-image, wenn Sie eine einfache Lösung benötigen, um DOM-Elemente in Bilder zu konvertieren, insbesondere wenn Sie SVG-Unterstützung und die Möglichkeit zum Anpassen von Bildformaten benötigen.