###前提・実現したいこと
javascript(Jquery)でローカルにあるファイルをcanvasに描画し、
そのあと toDataURLでcanvasの画像を圧縮したjpeg形式のURLに変換したいです。
###発生している問題・エラーメッセージ
canvasに描画したdataを toDataURLで変換する際に
以下のエラーが起こっています。
エラーメッセージ
canvas_sample.html:51 Uncaught TypeError: canvas.toDataURL is not a function
at HTMLButtonElement.<anonymous> (canvas_sample.html:51)
at HTMLButtonElement.dispatch (jquery-2.1.4.min.js:3)
at HTMLButtonElement.r.handle (jquery-2.1.4.min.js:3)
###該当のソースコード
<body> <div id="drawArea"> <canvas id="myCanvas" width="400" height="300"></canvas> </div> <div id="uploadArea"> <input id="uploadFile" name="image" type="file" accept="image/*" capture="camera" /> </div> <div> <button id="todataurl">todataURL</button> </div> <script> var canvas = $("#myCanvas"); var ctx = canvas[0].getContext("2d"); $("#uploadFile").change(function() { ctx.clearRect(0, 0, canvas.width, canvas.height); // 選択されたファイルを取得 var file = this.files[0]; var image = new Image(); var reader = new FileReader(); // File APIを使用し、ローカルファイルを読み込む reader.onload = function(evt) { // 画像がloadされた後に、canvasに描画する image.onload = function() { var image_w = image.width var image_h = image.height ctx.drawImage(image, 0, 0, image_w, image_h, 0, 0, 400, 300); } // 画像のURLをソースに設定 image.src = evt.target.result; // console.log(image.src); } //ファイルを読み込み、データをBase64でエンコードされたデータURLにして返す reader.readAsDataURL(file); }); //canvasの画像をjpage形式のURLに変換 $("#todataurl").click(function(){ var dataUrl = canvas.toDataURL("image/jpeg", 0.4); console.log(dataUrl); }); </script> </body>
###試したこと
課題に対してアプローチしたことを記載してください
HTMLButtonElement.<anonymous> + toDataURLなどで検索してみましたが
解決方法がみつかりませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
jquery-2.1.4

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/21 00:32