質問するログイン新規登録

質問編集履歴

1

ソースコードの引用

2017/11/26 08:40

投稿

Stephen_J
Stephen_J

スコア18

title CHANGED
File without changes
body CHANGED
@@ -8,4 +8,56 @@
8
8
 
9
9
  各functionが処理されるタイミングに問題があるような気がしたので、色々と書き換えたりもしましたが、結局うまくいきませんでした。
10
10
 
11
- よろしくお願いします。
11
+ よろしくお願いします。
12
+
13
+ 追記(上記のデモサイトから引用させていただきました)
14
+
15
+ ```HTML/JavaScript
16
+ <!DOCTYPE html>
17
+ <html>
18
+ <head>
19
+ <meta charset="utf-8">
20
+ <title>JS Bin</title>
21
+ </head>
22
+ <body>
23
+ <input type="file" onchange="onInputChanged(event)">
24
+ <hr>オリジナルサイズ:<br>
25
+ <img id="previewLarge">
26
+ <hr>縮小サイズ:<br>
27
+ <img id="previewSmall">
28
+
29
+ <script>
30
+ function onInputChanged(e) {
31
+ var file = e.target.files && e.target.files[0];
32
+ if (file != null) {
33
+ var reader = new FileReader();
34
+ reader.onload = onImageLoad;
35
+ reader.readAsDataURL(file);
36
+ }
37
+ }
38
+ function onImageLoad(e) {
39
+ var largeData = e.target.result;
40
+ var smallData = makeSmall(largeData);
41
+ previewLarge.src = largeData;
42
+ previewSmall.src = smallData;
43
+ }
44
+
45
+ // 画像データ(DataURL)を縮小して返す
46
+ function makeSmall(data) {
47
+ // 画像データの縦横サイズを取得する
48
+ var image = document.createElement('img');
49
+ image.src = data;
50
+ var width = image.naturalWidth;
51
+ var height = image.naturalHeight;
52
+
53
+ // 縮小する。今回は縦横それぞれ1/2
54
+ var canvas = document.createElement('canvas');
55
+ canvas.width = width / 2;
56
+ canvas.height = height / 2;
57
+ canvas.getContext("2d").drawImage(image, 0, 0, width / 2, height / 2);
58
+ return canvas.toDataURL();
59
+ }
60
+ </script>
61
+ </body>
62
+ </html>
63
+ ```