質問編集履歴

2

blobを使ってみる

2020/05/03 06:50

投稿

nyakorobin
nyakorobin

スコア2

test CHANGED
File without changes
test CHANGED
@@ -91,3 +91,35 @@
91
91
 
92
92
 
93
93
  相対パスではなく、絶対パスで書くと画像が表示されました。
94
+
95
+
96
+
97
+
98
+
99
+ ### 追記
100
+
101
+ 相対パスで表示したかったのはcanvas内の画像の保存がしたかったためです。
102
+
103
+
104
+
105
+ ```js
106
+
107
+ canvas.toBlob(function(blob) {
108
+
109
+ var newImg = document.createElement("img"),
110
+
111
+ url = URL.createObjectURL(blob);
112
+
113
+
114
+
115
+ newImg.src = url;
116
+
117
+ document.body.appendChild(newImg);
118
+
119
+ });
120
+
121
+ ```
122
+
123
+
124
+
125
+ 上記のようにしたところ、試しに書いた図形はimg属性として画面に表示されましたが、画像部分は表示されませんでした。

1

ソースコードをより詳しくする

2020/05/03 06:50

投稿

nyakorobin
nyakorobin

スコア2

test CHANGED
File without changes
test CHANGED
@@ -22,27 +22,65 @@
22
22
 
23
23
 
24
24
 
25
+ ```html
26
+
27
+ <div class="container">
28
+
29
+ <canvas ref="canvas" class="main-img"></canvas>
30
+
31
+ </div>
32
+
33
+ ```
34
+
35
+
36
+
37
+
38
+
25
39
  ```js
26
40
 
27
- const canvas = this.$refs.canvas
41
+ <script>
28
42
 
29
- canvas.height = canvas.width;
43
+ export default {
30
44
 
31
- const ctx = canvas.getContext('2d');
45
+ name: 'MainCanvas',
32
46
 
33
- const src = "../assets/images/hoge.png" // ここが相対パスだとうまくいかない
47
+ methods: {
34
48
 
35
- const img = new Image();
49
+ draw() {
36
50
 
37
- img.onload = function() {
51
+ const canvas = this.$refs.canvas
38
52
 
39
- ctx.beginPath();
53
+ canvas.height = canvas.width;
40
54
 
41
- ctx.drawImage(this, 0, 0, canvas.width, canvas.height);
55
+ const ctx = canvas.getContext('2d');
42
56
 
43
- };
57
+ const src = "../assets/images/hoge.png" // ここが相対パスだとうまくいかない
44
58
 
59
+ const img = new Image();
60
+
61
+ img.onload = function() {
62
+
63
+ ctx.beginPath();
64
+
65
+ ctx.drawImage(this, 0, 0, canvas.width, canvas.height);
66
+
67
+ }
68
+
45
- img.src = src;
69
+ img.src = src;
70
+
71
+ }
72
+
73
+ },
74
+
75
+ mounted() {
76
+
77
+ this.draw();
78
+
79
+ }
80
+
81
+ }
82
+
83
+
46
84
 
47
85
  ```
48
86