質問編集履歴

1

アドバイスいただきましたhtml2canvasを用いてキャプチャ取得を試みるようコードを書き換えました。

2020/12/24 12:43

投稿

20200713
20200713

スコア16

test CHANGED
File without changes
test CHANGED
@@ -22,80 +22,88 @@
22
22
 
23
23
  ```html
24
24
 
25
- <form>
25
+ <div id="target">
26
-
27
- <input checked type="checkbox" id="A"><label for="A">A</label><br>
28
-
29
- <input checked type="checkbox" id="B"><label for="B">B</label>
30
26
 
31
27
  <table class="imageTable">
32
28
 
33
- <tr id="trA">
29
+ <tr>
34
30
 
35
- <td><img src="https://placehold.jp/150x150.png?text=A1"></td>
31
+ <td><img src="https://placehold.jp/150x150.png?text=A1"></td>
36
32
 
37
- <td><img src="https://placehold.jp/150x150.png?text=A2"></td>
33
+ <td><img src="https://placehold.jp/150x150.png?text=A2"></td>
38
34
 
39
- <td><img src="https://placehold.jp/150x150.png?text=A3"></td>
35
+ <td><img src="https://placehold.jp/150x150.png?text=A3"></td>
40
36
 
41
- </tr>
37
+ </tr>
42
-
43
- <tr id="trB">
44
-
45
- <td><img src="https://placehold.jp/150x150.png?text=B1"></td>
46
-
47
- <td><img src="https://placehold.jp/150x150.png?text=B2"></td>
48
-
49
- <td><img src="https://placehold.jp/150x150.png?text=B3"></td>
50
-
51
- </tr>
52
38
 
53
39
  </table>
54
40
 
55
- </form>
41
+ </div>
56
42
 
43
+ <hr>
44
+
45
+ <h3>target範囲内を画像化<h3>
46
+
47
+ <img src="" id="result" />
48
+
49
+ <hr>
50
+
51
+
52
+
53
+ <a href="" id="ss" download="target.png">出力</a>
54
+
55
+
56
+
57
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>
58
+
57
- <input type="button" value="出力" onClick="getImages()">
59
+ <script type="text/javascript" src="test.js"></script>
58
60
 
59
61
  ```
60
62
 
61
- ```css
63
+ ```javascript
62
64
 
63
- .imageTable tr {
65
+ //test.js
64
66
 
65
- display: none;
67
+ //ロードされた際の処理として実施:
66
68
 
67
- }
69
+ window.onload = function(){
68
70
 
69
- #A:checked ~ .imageTable #trA,
70
71
 
71
- #B:checked ~ .imageTable #trB{
72
72
 
73
+ //HTML内に画像を表示
74
+
75
+ html2canvas(document.getElementById("target"),{
76
+
73
- display: block;
77
+ onrendered: function(canvas){
78
+
79
+ //imgタグのsrcの中に、html2canvasがレンダリングした画像を指定する。
80
+
81
+ var imgData = canvas.toDataURL();
82
+
83
+ document.getElementById("result").src = imgData;
84
+
85
+ }
86
+
87
+ });
88
+
89
+
90
+
91
+ //ボタンを押下した際にダウンロードする画像を作る
92
+
93
+ html2canvas(document.body,{
94
+
95
+ onrendered: function(canvas){
96
+
97
+ //aタグのhrefにキャプチャ画像のURLを設定
98
+
99
+ var imgData = canvas.toDataURL();
100
+
101
+ document.getElementById("ss").href = imgData;
102
+
103
+ }
104
+
105
+ });
74
106
 
75
107
  }
76
108
 
77
109
  ```
78
-
79
-
80
-
81
- ### 試したこと
82
-
83
-
84
-
85
- こちらでアドバイスいただき、上記のように
86
-
87
- 表に配置した画像の表示を列ごとにオンオフ切り替えられる仕様になっております。
88
-
89
- 今回取得したい表全体のキャプチャは、
90
-
91
- オンオフを指定した後のものとなります。
92
-
93
-
94
-
95
- 当方html,css等初心者です。
96
-
97
- 知識不足て大変申し訳ございませんが、
98
-
99
- どなたかアドバイスいただけましたら幸いです。
100
-
101
- 何卒宜しくお願い致します。