画面外でペイントしたり読み取ったりできる HTML キャンバス コンテキストが必要です (この例では、テキストを書き、作成された形状を読み取りますが、これは一般的な質問です)。キャンバスをオフスクリーン フレーム バッファとして使用することもできます。
非表示の DOM 要素を作成できると思いますが、JavaScript から作成したいと思います (実行時に多数のキャンバスを作成および破棄したい場合があります)。
可能?
画面外でペイントしたり読み取ったりできる HTML キャンバス コンテキストが必要です (この例では、テキストを書き、作成された形状を読み取りますが、これは一般的な質問です)。キャンバスをオフスクリーン フレーム バッファとして使用することもできます。
非表示の DOM 要素を作成できると思いますが、JavaScript から作成したいと思います (実行時に多数のキャンバスを作成および破棄したい場合があります)。
可能?
次の方法で新しいcanvas
要素を作成できdocument.createElement
ます。
var canvas = document.createElement('canvas');
それからコンテキストを取得します。と を必ず設定してwidth
くださいheight
。キャンバスを機能させるために、ツリーにキャンバスを追加する必要はありません。
ただし、必ずそのノードを作成する必要があります。ただし、そのための関数を作成できます。
function createContext(width, height) {
var canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
return canvas.getContext("2d");
}
しかし、それが私の能力の終わりです...どうにかしてコンテキストを別のコンテキストまたはキャンバスに転送できるかどうかはわかりません...
OffscreenCanvas
このユースケースのために意図的に設計された、と呼ばれる新しいものがあるようです。追加のボーナスは、Web Workers でも機能することです。
ここで仕様を読むことができます: https://html.spec.whatwg.org/multipage/canvas.html#the-offscreencanvas-interface
ここで例を参照してください: https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas
現在、Chrome でのみ完全にサポートされており、Firefox と Opera のフラグの背後で利用できますが、サポートされているブラウザーに関する最新情報は、https ://caniuse.com/#feat=offscreencanvas でいつでも確認できます。
追伸: Google には、Web ワーカーでの使用を説明する専用のガイドもあります: https://developers.google.com/web/updates/2018/08/offscreen-canvas