WebGLとWebGPUを使ったブラウザー上の3Dシーンの作成・描画を容易にするJavaScript 3Dライブラリ。
zumerlab/snapdom
DOM要素をキャプチャしてSVG、PNG、JPG、WebP、canvas、Blobに書き出すブラウザー上のJavaScriptエンジン。HTML、PDF、ベクター、GIF、動画に対応するプラグインも備えています。
代替できる製品:html2canvas
- スター
- 8,197
- フォーク
- 307
- 未解決の Issue
- 5
- 最終コミット
- 15 時間前
これは何?
SnapDOMはページ内のDOM要素をキャプチャし、SVG、PNG、JPG、WebP、canvas、Blobなどの形式に変換します。1回のキャプチャから複数の形式に出力でき、キャプチャ後に元の要素が変更されても、結果にはキャプチャ時の状態が保持されます。
公式プラグインを使うと、同じキャプチャから、単体で完結するHTML、検索可能でページ分割されたPDF、Figmaに貼り付けられるデータを含む編集可能なSVGベクター、エージェント向けのテキストまたはJSONコンテキスト、アニメーションGIF、ブラウザーでエンコードした動画を生成できます。ドキュメントに記載されたプラグインフックを使って、独自のエクスポーターを作成することもできます。コアに依存関係はなく、すべてブラウザー内で動作します。DOM環境が必要なため、通常のNode.jsでは動作しません。
出力サイズ、DPR、背景色、要素の除外や非表示、Webフォントの埋め込み、クリッピングを設定できます。PNGファイルへの書き出しではcanvasのサイズ上限を超えるキャプチャにも対応し、別途用意されたcropオプションを使えば、大きなページを分割してラスタライズできます。
主な機能
- 011回のキャプチャからDOM要素をSVG、PNG、JPG、WebP、canvas、Blobに出力できます。
- 02変更のないキャプチャを再利用し、小さな変更があった場合は影響を受けたサブツリーだけを再構築します。
- 03公式プラグインでHTML、PDF、編集可能なベクター、GIF、動画に書き出せます。
- 04プラグインフックを使って独自のエクスポーターを作成できます。
- 05サイズ、スケール、背景、除外する要素、フォントの埋め込みを設定できます。
- 06ES module、scriptタグ、TypeScript宣言を使ってブラウザーで動作します。
ユースケース
- Webアプリからダッシュボード、チャート、請求書を画像として共有する。
- レンダリング済みのページコンテンツからPDFレポートや印刷用ページを生成する。
- 編集可能なベクターアートを書き出したり、デザインをFigmaに貼り付けたりする。
- ページ上の内容をテキストまたは画像でAIエージェントに渡す。
クイックスタート
- 1
npmでコアパッケージをインストールする
npm i @zumer/snapdom - 2
snapdomをインポートし、要素をPNGに書き出す
使う前に知っておきたいこと
- SnapDOMにはブラウザーのDOMが必要なため、サーバーサイドのNode.jsではブラウザー環境が必要です。
- クロスオリジンの画像、フォント、スタイルシートには読み取り可能なリソースまたはプロキシが必要です。クロスオリジンのiframeはプレースホルダーで表示されます。
- SVG出力はforeignObjectに依存するため、ブラウザー以外ではサポート状況が異なります。
トピック
よくある質問
- snapdom とは?
- DOM要素をキャプチャしてSVG、PNG、JPG、WebP、canvas、Blobに書き出すブラウザー上のJavaScriptエンジン。HTML、PDF、ベクター、GIF、動画に対応するプラグインも備えています。 SnapDOMはページ内のDOM要素をキャプチャし、SVG、PNG、JPG、WebP、canvas、Blobなどの形式に変換します。1回のキャプチャから複数の形式に出力でき、キャプチャ後に元の要素が変更されても、結果にはキャプチャ時の状態が保持されます。
- snapdom は無料で使えますか?ライセンスは?
- snapdom は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- snapdom は今もメンテナンスされていますか?
- 活発にメンテナンス中。snapdom の最終コミットは 2026年10月20日 です。
- snapdom は何に使えますか?
- Webアプリからダッシュボード、チャート、請求書を画像として共有する。 レンダリング済みのページコンテンツからPDFレポートや印刷用ページを生成する。 編集可能なベクターアートを書き出したり、デザインをFigmaに貼り付けたりする。 ページ上の内容をテキストまたは画像でAIエージェントに渡す。
- snapdom のインストール方法は?
- npmでコアパッケージをインストールする: npm i @zumer/snapdom snapdomをインポートし、要素をPNGに書き出す
- snapdom はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/zumerlab/snapdom
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
WebGLとWebGPUでグラフィック、スプライト、テキストを描画する高速なWeb向け2Dレンダリングライブラリ。
React、React Native、素のJavaScriptアプリ向けのMITライセンスの無限キャンバス型ホワイトボードSDK。tldrawの無料代替として利用できます。
アプリ内で注釈を編集でき、キャプチャ用ショートカットを設定可能な、クロスプラットフォーム対応のC++/Qt製スクリーンショットツール。CLIとDBusインターフェースも備えています。
ユーザーの操作に沿ってコンポーネントを検索・操作できる、軽量なReact DOMテストユーティリティ。
ONNX Runtimeを使い、サーバーなしでHugging Face TransformersモデルをブラウザーやJavaScriptランタイム上で実行できます。