回答編集履歴

1

補足情報を追加

2018/01/25 08:40

投稿

defghi1977
defghi1977

スコア4756

test CHANGED
@@ -1,4 +1,4 @@
1
- 最も単純な方法としては, `canvas`要素の描画状態を`getImageData`メソッドを用いて`ImageData`オブジェクト化する方法でしょう. この`ImageData`オブジェクトを保管しておきたい履歴数分, 配列にとっておき, `putImageData`メソッドを使って`canvas`要素に書き戻すのです.
1
+ 最も単純な方法としては, `canvas`要素の描画状態を`getImageData`メソッドを用いて`ImageData`オブジェクト化する方法でしょう. この`ImageData`オブジェクトを保管しておきたい履歴数分, 配列にとっておき, `putImageData`メソッドを使って`canvas`要素に書き戻すのです. 後は一般的なundo/redoの実装に帰着します.
2
2
 
3
3
 
4
4
 
@@ -47,3 +47,15 @@
47
47
  }
48
48
 
49
49
  ```
50
+
51
+ NOTE:
52
+
53
+ 描画状態のオブジェクト化には`ImageData`オブジェクトの他にも次のものが利用できます
54
+
55
+
56
+
57
+ - `CanvasPattern`オブジェクト
58
+
59
+ - `HTMLCanvasElement`オブジェクト(`canvas`要素)
60
+
61
+ - `toDataURL`(dataURIスキーム形式)/`toBlob`メソッド