前提・実現したいこと
canvasで相対パスを使って画像を表示させたい
発生している問題・エラーメッセージ
srcを相対パスで書くと、画像が表示されなくなります。
エラーメッセージは出ていません。
パスの指定は間違っていません。
該当のソースコード
html
1<div class="container"> 2 <canvas ref="canvas" class="main-img"></canvas> 3</div>
js
1<script> 2export default { 3 name: 'MainCanvas', 4 methods: { 5 draw() { 6 const canvas = this.$refs.canvas 7 canvas.height = canvas.width; 8 const ctx = canvas.getContext('2d'); 9 const src = "../assets/images/hoge.png" // ここが相対パスだとうまくいかない 10 const img = new Image(); 11 img.onload = function() { 12 ctx.beginPath(); 13 ctx.drawImage(this, 0, 0, canvas.width, canvas.height); 14 } 15 img.src = src; 16 } 17 }, 18 mounted() { 19 this.draw(); 20 } 21} 22
試したこと
相対パスではなく、絶対パスで書くと画像が表示されました。
追記
相対パスで表示したかったのはcanvas内の画像の保存がしたかったためです。
js
1canvas.toBlob(function(blob) { 2 var newImg = document.createElement("img"), 3 url = URL.createObjectURL(blob); 4 5 newImg.src = url; 6 document.body.appendChild(newImg); 7});
上記のようにしたところ、試しに書いた図形はimg属性として画面に表示されましたが、画像部分は表示されませんでした。
回答1件
あなたの回答
tips
プレビュー