JavaScriptでWebページのスクリーンショット画像を取得

要素の範囲を取得して、Canvasに描画している

ここはHTML

https://hi0a.com/

ようこそ

いろんなゲームやツール・小技を紹介しているよ

画像として出力したもの

補足・注意点

生成したスクショは右クリックして「名前をつけて画像を保存」が可能

ただし、外部ドメインの画像は取得できない

フォントやCSSの認識の仕様で、ボーダーラインなどはズレることがある

リンクの色は非訪問状態で認識される

ライブラリ

http://html2canvas.hertzen.com/

view source

JavaScript

/*
window.onload = function(){
  html2canvas(document.getElementById("target"),{
    onrendered: function(canvas){
      var data = canvas.toDataURL("image/png");
      document.getElementById("ss").href = data;
      document.getElementById("img").src = data;
    }
  });
}
*/
//lib/html2canvas.js
window.onload = function(){
  html2canvas(document.querySelector("#target")).then(canvas => {
    console.log(canvas);
    document.querySelector("#screenshot").appendChild(canvas)
  });
}

CSS

#screenshot{
}

#img{
  width:800px;
  border:2px solid #ff0000;
}
#target{
  width:400px;
  border:2px solid #000;
}
#target p{
  margin:4px;
  border-bottom:1px solid rgba(0,0,0,.2);
}

HTML

ページのソースを表示 : Ctrl+U , DevTools : F12

view-source:https://hi0a.com/demo/-js/js-canvas-screenshot/

ABOUT

hi0a.com 「ひまアプリ」は無料で遊べるミニゲームや便利ツールを公開しています。

プログラミング言語の動作デモやWEBデザイン、ソースコード、フロントエンド等の開発者のための技術を公開しています。

必要な機能の関数をコピペ利用したり勉強に活用できます。

プログラムの動作サンプル結果は画面上部に出力表示されています。

環境:最新のブラウザ GoogleChrome / Windows / Android / iPhone 等の端末で動作確認しています。

画像素材や音素材は半分自作でフリー素材配布サイトも利用しています。LINK参照。

動く便利なものが好きなだけで技術自体に興味はないのでコードは汚いです。

途中放置や実験状態、仕様変更、API廃止等で動かないページもあります。