ブログ
日本語

HTML 画像化 — HTMLとCSSをPNGに変換

貼り付けたHTMLとCSSを描画し、指定した幅と倍率でPNGとしてキャプチャ

ブラウザー内で処理・アップロード不要

断片(<div>…)でも文書全体(<html>…)でも貼り付けられます。文書全体の場合は<body>の中身と<style>ブロックだけを使います。

追加するスタイルです。HTML内の<style>ブロックも適用されます。

px

この幅(px)でレイアウトし、高さ全体をキャプチャします。100〜4000。

倍率

2倍はRetinaディスプレイのようにくっきり、3倍は印刷向けです。画素数は倍率の2乗で増えます。

背景

セキュリティとプライバシーのため、data:とblob:以外のアドレスにある画像・フォント・CSSは、プレビューでもキャプチャでも一切リクエストせず、スクリプトも実行しません。文字は端末にインストールされているフォントで表示されます。

プレビュー

HTMLを入力するとプレビューが表示されます。

どんなツールか

カード、お知らせ、表、ボタン、メールのバナーなど、HTMLとCSSの断片をPNG画像として保存するツールです。ドキュメントやブログで表示結果を見せたいとき、SNS用のお知らせカードをコードで作りたいとき、デザインの一部を画像で共有したいときに使えます。スクリーンショットを切り抜くのと違い、幅と倍率を正確に指定できます。

使い方

  1. HTML にコードを貼り付けます。文書全体(<html>…)でも断片でもかまいません。初めてなら サンプルを挿入 をクリックしてみてください。
  2. 必要に応じて CSS にスタイルを追加します。HTML内の <style> ブロックも適用されます。
  3. キャプチャの幅(px)、倍率(1×、2×、3×)、背景(白または透明)を設定します。
  4. プレビューを確認して PNGを作成 をクリックし、PNGを保存 を押します。

しくみ

  • 安全なプレビュー:コードはサンドボックス化したiframeで描画します。サンドボックスがスクリプトの実行を止め、コンテンツセキュリティポリシー(CSP)がdata:とblob:以外へのネットワークリクエストをすべてブロックします。
  • 外部アドレスの除去:貼り付けたコードは、まずブラウザー自身のHTML・CSSパーサーで読み取ります(この段階では何も読み込みません)。src、srcset、poster、SVGのhref、style属性、<style>、url()、image-set()、@import、@font-faceにあるdata:とblob:以外のアドレスはすべて取り除き、一覧で知らせます。キャプチャの直前にもプレビューを再確認し、キャプチャ中もdata:とblob:のアドレスしか読めないため、外部のアドレスにリクエストが送られることはありません。リンク(<a href>)は画像に影響しないため一覧には出しませんが、クリックしてもどこにも移動しないように書き換えます。
  • キャプチャのサイズ:選んだ幅でレイアウトし、実際の高さでキャプチャします。PNGのサイズは幅×倍率、高さ×倍率です。
  • サイズの上限:ブラウザーが扱える大きさ(iPhone・iPadでは16,777,216画素、1辺16,384px)を超える場合は、倍率を自動で下げてお知らせします。
  • 文書全体の場合:<body> の中身とすべての <style> ブロックだけを使い、<head> のほかのタグは捨てます。
  • キャプチャにはhtml-to-image(MITライセンス)を使っています。

作成例

入力 設定 結果
サンプルのお知らせカード 幅800、2倍 幅1600pxのPNG
CSS付きの <table> 幅600、3倍、透明 幅1800px、背景透明のPNG
外部の画像を含むコード 幅800、1倍 外部の画像は空のまま、ブロックしたアドレスを一覧表示

ベクターの図はSVG PNG 変換で、MarkdownはMarkdownプレビューでどうぞ。

よくある質問

URLを入力してWebサイトをキャプチャできますか?

できません。ほかのサイトをキャプチャするには、サーバーが代わりにページを開く必要があり、このツールはそれを行いません。自分で書いたHTMLとCSS、またはブラウザーの開発者ツールからコピーしたものを貼り付けてください。

画像が表示されません。

セキュリティとプライバシーのため、data:とblob:以外のアドレス(http、https、//、相対パス)にある画像・フォント・CSSは一切読み込みません。HTMLの文字参照やCSSのエスケープで隠したアドレスも、ブラウザーがデコードした結果で確認するため同じくブロックされます。ブロックしたアドレスは一覧表示します。画像をdata:(Base64)アドレスで埋め込めば表示され、画像 Base64 変換ツールで作成できます。

フォントがデザインと違って見えます。

Webフォントのファイルは取得しないため、文字は端末にインストールされているフォントで表示されます。指定したフォントがない場合は、システムの標準フォント(Windowsなら游ゴシックやSegoe UI、Apple製品ならヒラギノやSan Franciscoなど)が使われます。

JavaScriptで生成した内容は表示されますか?

表示されません。貼り付けたコードのスクリプトは実行せず、静的なHTMLとCSSだけを描画します。

コードはサーバーに送信されますか?

されません。プレビューも画像もブラウザーの中で作成します。

ほしいツールはありますか?