回答編集履歴

1

コード例追加

2017/01/10 05:13

投稿

退会済みユーザー
test CHANGED
@@ -3,3 +3,147 @@
3
3
 
4
4
 
5
5
  src に設定した画像データの読み込みが完了すると、image.onload イベントが発生するので、そのハンドラで処置を行うとうまくいくと思います。
6
+
7
+
8
+
9
+ ********* 2017/1/10 14:15 追記 *********
10
+
11
+
12
+
13
+ 2017/01/10 14:08 の私のコメントで書きましたようにコード例をアップしておきます。コピペすれば動くはずなのでお試しください。これと質問者さんのやりらいことが違う場合は、どこだどのように違うか具体的に書いてください。
14
+
15
+
16
+
17
+ ```
18
+
19
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
20
+
21
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
22
+
23
+
24
+
25
+ <html xmlns="http://www.w3.org/1999/xhtml">
26
+
27
+ <head>
28
+
29
+ <title></title>
30
+
31
+ <script src="/Scripts/jquery-1.8.3.js" type="text/javascript"></script>
32
+
33
+ <script type="text/javascript">
34
+
35
+ //<![CDATA[
36
+
37
+ // HTML5 File API の FileReader を利用して <input type="file"... /> で選択
38
+
39
+ // された画像ファイルを読み込み、その画像の Data url 形式文字列を取得。
40
+
41
+ // それを image オブジェクトの src 属性に設定する。その際 image.onload イベ
42
+
43
+ // ントが発生するのでそのイベントにリスナをアタッチ。そのリスナの中で image
44
+
45
+ // オブジェクトが保持する画像のサイズを取得する。
46
+
47
+
48
+
49
+ // 以下の 3 行はそのための準備
50
+
51
+ var fileReader;
52
+
53
+ var image = new Image();
54
+
55
+ image.onload = DrawImageOnCanvas;
56
+
57
+
58
+
59
+ // document の読み込み完了後に { } 内の処置を行う
60
+
61
+ $(function () {
62
+
63
+ // ブラウザの HTML5 File API サポートを確認
64
+
65
+ if (window.File && window.FileReader && window.FileList) {
66
+
67
+ fileReader = new FileReader();
68
+
69
+
70
+
71
+ // FileReader オブジェクトに画像を読み込むメソッド readAsDataURL は
72
+
73
+ // 非同期で動くので、読み込み完了のイベント onloadend を待って、その
74
+
75
+ // リスナで FileReader から Data url を取得し image オブジェクトの
76
+
77
+ // src 属性に設定する。
78
+
79
+ fileReader.onloadend = function () {
80
+
81
+ image.src = fileReader.result;
82
+
83
+ };
84
+
85
+
86
+
87
+ // <input type="file"... /> でファイルの選択が完了すると change
88
+
89
+ // イベントが発生するのでそれにリスナをアタッチし処置を行う。
90
+
91
+ $("#fileupload").change(function () {
92
+
93
+ var fileUpload = document.getElementById("fileupload");
94
+
95
+
96
+
97
+ // fileReader オブジェクトに <input type="file"... /> で選択
98
+
99
+ // された画像ファイルを読み込む
100
+
101
+ fileReader.readAsDataURL(fileUpload.files[0]);
102
+
103
+ });
104
+
105
+ } else {
106
+
107
+ $('#result').text('File API がサポートされてません。');
108
+
109
+ }
110
+
111
+ });
112
+
113
+
114
+
115
+ // 上で定義した image オブジェクトの src 属性に Data url が設定されると発生
116
+
117
+ // する onload イベントのリスナ
118
+
119
+ function DrawImageOnCanvas() {
120
+
121
+ // オリジナル画像のサイズ
122
+
123
+ var w = image.width;
124
+
125
+ var h = image.height;
126
+
127
+
128
+
129
+ $('#result').text('width: ' + w + ', height: ' + h);
130
+
131
+ }
132
+
133
+ //]]>
134
+
135
+ </script>
136
+
137
+ </head>
138
+
139
+ <body>
140
+
141
+ <input id="fileupload" type="file" />
142
+
143
+ <div id="result"></div>
144
+
145
+ </body>
146
+
147
+ </html>
148
+
149
+ ```