SVGをbitmapに変換

canvgだとuse xlink での要素コピーに非対応なので、

SVG2Bitmap を使う

cdnjsにないので、自分のサーバに置くこと。

画像サイズはSVGのviewBox属性でなく、表示そのままのstyleが採用される。

styleで拡大しても、SVGの座標がそのまま反映されズレた画像が生成される。

textarea

SVG

Canvas

PNG

view source

JavaScript

var textarea = document.getElementById('textarea');
var svgArea = document.getElementById('svgArea');
var toPngButton = document.getElementById('toPngButton');
var toPngArea = document.getElementById('toPngArea');
var toCanvasArea = document.getElementById('toCanvasArea');

var svgToBitmap = function(){
  var svg = svgArea.querySelector('svg');
  SVG2Bitmap(svg, function(canvas, dataURL){
    toCanvasArea.innerHTML = '';
    toCanvasArea.appendChild(canvas);

    var img = document.createElement('img');
    img.src = dataURL;
    toPngArea.innerHTML = '';
    toPngArea.appendChild(img);
  });
}

svgToBitmap();





toPngButton.addEventListener('click', function(){
  svgToBitmap();
});


textarea.value = svgArea.innerHTML;
textarea.addEventListener('change', function(){
  svgArea.innerHTML = textarea.value;
});





tabIndent.config.tab = '  ';
tabIndent.render(textarea);

CSS

textarea{
  width:90%;
  height:200px;
}


svg{
  width:256px;
}

HTML

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

view-source:https://hi0a.com/demo/-svg/svg-to-bitmap/

ABOUT

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

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

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

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

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

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

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

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