teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

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

2020/12/24 12:43

投稿

20200713
20200713

スコア16

title CHANGED
File without changes
body CHANGED
@@ -10,42 +10,46 @@
10
10
  ### 該当のソースコード
11
11
 
12
12
  ```html
13
- <form>
13
+ <div id="target">
14
- <input checked type="checkbox" id="A"><label for="A">A</label><br>
15
- <input checked type="checkbox" id="B"><label for="B">B</label>
16
14
  <table class="imageTable">
17
- <tr id="trA">
15
+ <tr>
18
- <td><img src="https://placehold.jp/150x150.png?text=A1"></td>
16
+ <td><img src="https://placehold.jp/150x150.png?text=A1"></td>
19
- <td><img src="https://placehold.jp/150x150.png?text=A2"></td>
17
+ <td><img src="https://placehold.jp/150x150.png?text=A2"></td>
20
- <td><img src="https://placehold.jp/150x150.png?text=A3"></td>
18
+ <td><img src="https://placehold.jp/150x150.png?text=A3"></td>
21
- </tr>
19
+ </tr>
22
- <tr id="trB">
23
- <td><img src="https://placehold.jp/150x150.png?text=B1"></td>
24
- <td><img src="https://placehold.jp/150x150.png?text=B2"></td>
25
- <td><img src="https://placehold.jp/150x150.png?text=B3"></td>
26
- </tr>
27
20
  </table>
28
- </form>
21
+ </div>
22
+ <hr>
23
+ <h3>target範囲内を画像化<h3>
24
+ <img src="" id="result" />
25
+ <hr>
26
+
27
+ <a href="" id="ss" download="target.png">出力</a>
28
+
29
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>
29
- <input type="button" value="出力" onClick="getImages()">
30
+ <script type="text/javascript" src="test.js"></script>
30
31
  ```
31
- ```css
32
+ ```javascript
32
- .imageTable tr {
33
+ //test.js
34
+ //ロードされた際の処理として実施:
33
- display: none;
35
+ window.onload = function(){
34
- }
35
- #A:checked ~ .imageTable #trA,
36
- #B:checked ~ .imageTable #trB{
37
- display: block;
38
- }
39
- ```
40
36
 
41
- ### 試したこと
37
+ //HTML内に画像を表示
38
+ html2canvas(document.getElementById("target"),{
39
+ onrendered: function(canvas){
40
+ //imgタグのsrcの中に、html2canvasがレンダリングした画像を指定する。
41
+ var imgData = canvas.toDataURL();
42
+ document.getElementById("result").src = imgData;
43
+ }
44
+ });
42
45
 
43
- こちらでアドバイスいただき、上記のように
44
- 表に配置した画像の表示列ごとにオンオフ切り替えられ仕様になっております。
46
+ //ボタンを押下した際にダウンロードする画像を
45
- 今回取得したい表全体のキャプチャは、
46
- オンオフを指定した後のものとなります。
47
-
48
- 当方html,css等初心者です。
47
+ html2canvas(document.body,{
49
- 知識不足て大変申し訳ございませんが、
50
- どなたかアドバイスいただけましたら幸いです。
48
+ onrendered: function(canvas){
49
+ //aタグのhrefにキャプチャ画像のURLを設定
51
- 何卒宜しくお願い致します。
50
+ var imgData = canvas.toDataURL();
51
+ document.getElementById("ss").href = imgData;
52
+ }
53
+ });
54
+ }
55
+ ```