Laravel6でcanvasタグから生成された画像を、画像ファイルに変換する機能の実装を試みています。
HTML
1<form method="post" action="{{ route('post.store') }}" enctype="multipart/form-data"> 2@csrf 3 <canvas id="preview"></canvas> 4 <div><img id="newImag" type="file" name="image"></div> 5 <input type="button" value="画像に変換" onclick="chgImg()"> 6 <button type="submit" type="file" class="btn btn-succsess">保存する</button> 7</form>
javascript
1 <script> 2 //画像を読み込んでImageオブジェクトを作成する 3 let image = new Image(); 4 image.src = '../images/canvas.png'; 5 image.onload = (function() { 6 //画像ロードが完了してからキャンバスの準備をする 7 let canvas = document.getElementById('preview'); 8 let ctx = canvas.getContext('2d'); 9 //キャンバスのサイズを画像サイズに合わせる 10 canvas.width = image.width; 11 canvas.height = image.height; 12 //キャンバスに画像を描画(開始位置0,0) 13 ctx.drawImage(image, 0, 0); 14 }); 15 16 //canvasデータを画像に変換にする関数 17 let cvs = document.getElementById('preview'); 18 19 function chgimg() { 20 let png = cvs.toDataURL(); 21 document.getElementById('newImag').src = png; 22 } 23 </script>
上記コードの中で、
HTML
1 <input type="button" value="画像に変換" onclick="chgImg()">
をクリックすると、
HTML
1<div><img id="newImag" type="file" name="image"></div>
上記箇所に画像形式で<canvas>で生成された画像を出力させたいのですが、
「 chgImg is not defined at HTMLInputElement.onclick」 というエラーが出ます。
コードを参考にしたサイトとのコードの差異もないと思うのですが、どうしてこのようなエラーになるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/27 11:02