※ ChatGPTを利用し、要約された質問です(原文:javascriptでのパス指定について)
javascriptでのパス指定について
このQ&Aのポイント
javascriptを使用してHTML5のcanvas内に画像を表示する際のパス指定方法について教えてください。
質問者はSpringMVCのビュー部分でJSPからjavascriptを使用して開発を行っていますが、画像表示時のパスの指定がうまくいかないようです。
画像のパス指定方法を教えていただけると助かります。
現在、SpringMVCのビュー部分で、JSPからjavascriptを使用するようにして開発を行っています(初心者です)。html5のcanvasを使用してcanvas内に画像を表示したいのですが、画像表示時のパスの指定が悪いせいか表示されません。そこで、javascriptからのパスの指定方法をご教授頂けないでしょうか?
プロジェクト階層とビュー部分のjsp(input.jsp)コード(一部抜粋)は以下になります。
【階層(一部抜粋)】
test <- プロジェクト
|--- WebContent
|----WEB-INF
|----jsp
| |---input.jsp
|----sample
|---abc.png
【input.jsp】
<body>
<canvas id="myCanvas" width="400"; height="400" ;>
HTML5 Canvasに対応したブラウザーを使用してください。
</canvas>
<script type="text/javascript">
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.strokeRect(300, 10, 200, 200);
var img = new Image();
img.src = "../sample/abc.png"; //ここでパスを指定。
/* 画像を描画 */
ctx.drawImage(img, 0, 0);
</script>
<form:form commandName="example">
<form:input path="message"/>
<input type="submit" />
</form:form>
</body>
</html>
【やりたいこと】
WEBブラウザ上に任意の画像を表示して、ユーザーがその画像をマウスで拡縮を行うようなサービスの作成を検討しており、現在、その実装(技術検討)中です。
お礼
taloo様、 ご回答ありがとうございます。 以下を試しましたが、やはりうまくいきません。 プリロードのほうは、まだ試していないのですが、以下の方法でNGなので、同様にNGかと思います。 > img.onload=function(){ctx.drawImage(this, 0, 0);}; canvasを使用する理由ですが、canvasにテキストを挿入して、簡単なお絵かきツールのようなサービスを提供しようと思っています。ですので、canvasのほうが使い勝手が良いと思い使用することとしています。
補足
そのご、プロジェクトの設定やらを変更したり、イメージのストア先を変更したらうまくいくようになりました。 Taloo様、 ご丁寧にアドバイス頂きありがとうございました。