回答編集履歴
4
修正
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
上の回答に書いたことをコーディングしたサンプルを載せておきます。
|
16
16
|
|
17
|
-
```
|
17
|
+
```html
|
18
18
|
<!DOCTYPE html>
|
19
19
|
|
20
20
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
追記
test
CHANGED
@@ -8,3 +8,67 @@
|
|
8
8
|
|
9
9
|
(4) image オブジェクトの src 属性に Data url が設定され画像のロードが完了すると onload イベントが発生するのでそのリスナで image オブジェクトの高さと幅を取得
|
10
10
|
|
11
|
+
---
|
12
|
+
|
13
|
+
**【追記】**
|
14
|
+
|
15
|
+
上の回答に書いたことをコーディングしたサンプルを載せておきます。
|
16
|
+
|
17
|
+
```HTML
|
18
|
+
<!DOCTYPE html>
|
19
|
+
|
20
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
21
|
+
<head runat="server">
|
22
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
23
|
+
<title></title>
|
24
|
+
<script type="text/javascript">
|
25
|
+
window.addEventListener('DOMContentLoaded', () => {
|
26
|
+
const inputFile = document.getElementById('img_id');
|
27
|
+
const resultDiv = document.getElementById("result");
|
28
|
+
|
29
|
+
inputFile.addEventListener('change', async () => {
|
30
|
+
// 選択された画像の Data url を取得
|
31
|
+
let dataUrl = await CreateDataUrl(inputFile.files[0]);
|
32
|
+
|
33
|
+
// 画像がロードされた img オブジェクトを取得
|
34
|
+
let img = await CreateImage(dataUrl);
|
35
|
+
|
36
|
+
resultDiv.innerText = `Size: ${img.width} x ${img.height}`;
|
37
|
+
});
|
38
|
+
});
|
39
|
+
|
40
|
+
// input type="file" から取得できる File オブジェクトを引数
|
41
|
+
// に渡す。FileReader オブジェクトを生成して readAsDataURL
|
42
|
+
// メソッドで Data url を生成し、resolve コールバックの引数
|
43
|
+
// に設定
|
44
|
+
const CreateDataUrl = file => {
|
45
|
+
return new Promise(resolve => {
|
46
|
+
const reader = new FileReader();
|
47
|
+
reader.addEventListener('loadend', e => resolve(e.target.result));
|
48
|
+
reader.readAsDataURL(file);
|
49
|
+
});
|
50
|
+
};
|
51
|
+
|
52
|
+
// 上のメソッドで生成された画像の Data url を引数に渡す。それ
|
53
|
+
// を img 要素の src 属性に代入。ロード完了後の img 要素を
|
54
|
+
// resolve コールバックの引数に設定
|
55
|
+
const CreateImage = dataUrl => {
|
56
|
+
return new Promise(resolve => {
|
57
|
+
const img = document.getElementById('picture_id');
|
58
|
+
img.addEventListener('load', e => resolve(e.target));
|
59
|
+
img.src = dataUrl;
|
60
|
+
});
|
61
|
+
};
|
62
|
+
</script>
|
63
|
+
</head>
|
64
|
+
<body>
|
65
|
+
<input type="file" id="img_id" />
|
66
|
+
<div id="result"></div>
|
67
|
+
<img id="picture_id" />
|
68
|
+
</body>
|
69
|
+
</html>
|
70
|
+
```
|
71
|
+
|
72
|
+
結果は:
|
73
|
+
|
74
|
+

|
2
訂正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
input type="file" でファイルの選択が完了すると change イベントが発生するのでそれにリスナをアタッチし、以下の処置を行うように
|
1
|
+
input type="file" でファイルの選択が完了すると change イベントが発生するのでそれにリスナをアタッチし、以下の処置を行うようにしてはいかがですか?
|
2
2
|
|
3
3
|
(1) input type="file" で選択された画像ファイルを FileReader オブジェクトに readAsDataURL メソッドを使って読み込む
|
4
4
|
|
1
訂正
test
CHANGED
@@ -6,5 +6,5 @@
|
|
6
6
|
|
7
7
|
(3) image オブジェクトを作ってその src 属性に Data url 設定
|
8
8
|
|
9
|
-
(4) image オブジェクトの src 属性に Data urlが設定され画像のロードが完了すると onload イベントが発生するのでそのリスナで image オブジェクトの高さを取得
|
9
|
+
(4) image オブジェクトの src 属性に Data url が設定され画像のロードが完了すると onload イベントが発生するのでそのリスナで image オブジェクトの高さと幅を取得
|
10
10
|
|