###実現したいこと
Canvasに画像を表示させたいです。
###試したこと
js
var img = new Image(); var Draw; var draw; Draw = function() { ctx.drawImage(img, 0, 0); }; img.src = "img/logo.PNG"; img.addEventListener("load", function() { stage = new Stage(); stage.update(); draw = new Draw();
###現象
画像が表示されません。
設定したCanvasの内容は表示されています。
###エラーメッセージ
DevToolで確認しましたが、エラーメッセージはありません。
原因が分かりません。アドバイスいただけないでしょうか。
以上、ご確認お願いいたします。
###追記
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Interactive Art</title> <style> canvas { background: black; } </style> </head> <body> <canvas id="mycanvas" width="500" height="250"> Canvasに対応したブラウザを使ってください。 </canvas> <script> var img = new Image(); img.onload = (function(){ var canvas = document.getElementById('logo'); // var ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0); }); img.src = "logo.PNG"; </script> </html>
上記のコードを追記した結果、リロードするタイミングで一瞬だけ画像が表示されますが、すぐに消えてしまう現象に陥っております。
コードはエラーが出ても良いので実行可能なものを提示して下さい.
ctxはどこから出てきた変数ですか?あとdraw = new Draw();より下のコードが切れています。できるだけ全部を貼り付けてください。
お二方 追記しました。参考になれば幸いです。コード量が多く恐縮ですが、必要な情報かと思い、全て貼り付けました。
>できているものをそのまま写した箇所 確認しますが, どこかのサイトからコードをコピペしたということですか?
本当にこれで全部で、「エラーがない」と主張しているコードそのものですか?私の環境ではそもそもブラケットの数が合わずにエラーがでます。
defghi1977さん、どっとインストールの「インタラクティブアートを作ろう」のレッスンででてくるコードを使っております。
masaya_ohashiさん、コードを追記したためエラーが出ておりました。私の方でも、ブラケットの数が合わないエラーが表示されております。修正しますね。
内容を見るにちょっとハイレベルなんだよな…コードの内容が理解できていないのであれば, それをいじっても全く勉強にはならないのね
defghi1977さん、ご確認ありがとうございます。そうですよね。好奇心だけでチャレンジしてしまい、自分で書いたコードもロジックが曖昧な状態で書いていますので、できるわけないですよね。もう少し簡単なところから始めてみます。アドバイスありがとうございました。
「上記のコードを追記した結果」とありますが、このコード「だけ」で試さないと、正常に動いていないコードも同時に動くのでうまく出来ているかの判断はつかなくなります。
コードを修正してもらったようですが、エラーが2つあります。document.getElementById('logo');とされていますが、canvasのIDはlogoではなくmycanvasです。また、ctxをgetContextする行がコメントアウトされているので、ctx.drawImageでもエラーが起きます。
落ち着いて. 質問の内容は追記が基本で(致命的な間違い)でない限り消してはいけません. さもないと回答との整合性がおかしくなります. また, 追加されたコードには2箇所不味いところがあるので動きません.
masaya_ohashiさん、defghi1977さん、ご指摘いただいた2点(logo→mycanvasへ修正/コメントアウトしていた行を解除)で一応画像が表示されました。あとは、本来取り込みたいファイルに展開してトライしてみます。アドバイスありがとうございます!
canvasは動き始めるととても楽しくなるのでもう少しの辛抱です
既存のファイルに今回のコードをマージすると上手く動作しませんでした。うーん、でも今回まっさらな状態で画像を表示させることはできたので、いろいろと整理して、また別途質問することにします。みなさん、アドバイスありがとうございました。
回答1件
あなたの回答
tips
プレビュー