質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
canvas

HTML5の<canvas>要素用のタグです。CanvasはHTML5から導入された、二次元の図形描写が可能な要素です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

586閲覧

<input type="button">タグでonclick"chgImg()"イベントを発火させるとエラーになる。

tkm0604

総合スコア554

canvas

HTML5の<canvas>要素用のタグです。CanvasはHTML5から導入された、二次元の図形描写が可能な要素です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/11/27 10:15

編集2021/11/27 10:17

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」 というエラーが出ます。
コードを参考にしたサイトとのコードの差異もないと思うのですが、どうしてこのようなエラーになるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

綴り間違いではないでしょうか?

誤)function chgimg() {
正)function chgImg() {

投稿2021/11/27 10:39

編集2021/11/27 10:53
cx20

総合スコア4633

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tkm0604

2021/11/27 11:02

ありがとうございます。 スペルミスでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問