質問編集履歴

2

タイプミス

2019/06/08 11:00

投稿

torigara
torigara

スコア12

test CHANGED
@@ -1 +1 @@
1
- DatURIでGoogle類似画像検索
1
+ DataURIでGoogle類似画像検索
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- 一方で、表題にある通り**DatURIスキーム**を用いた画像(<img src="data:image/png;base64,...">)に関しては、上記にあてはめるだけではうまくいきません。
23
+ 一方で、表題にある通り**DataURIスキーム**を用いた画像(<img src="data:image/png;base64,...">)に関しては、上記にあてはめるだけではうまくいきません。
24
24
 
25
25
 
26
26
 
@@ -34,11 +34,11 @@
34
34
 
35
35
 
36
36
 
37
- Google側が、**DatURIスキーム**を用いた画像の受け入れに対応していることは、以下の試行により確認しております。
37
+ Google側が、**DataURIスキーム**を用いた画像の受け入れに対応していることは、以下の試行により確認しております。
38
38
 
39
39
 
40
40
 
41
- 0. [Google画像検索のトップページ](https://www.google.co.jp/imghp)のフォームより、DatURIスキームを用いた画像のURIを直接入力し送信すること。
41
+ 0. [Google画像検索のトップページ](https://www.google.co.jp/imghp)のフォームより、DataURIスキームを用いた画像のURIを直接入力し送信すること。
42
42
 
43
43
  0. <img src="data:image/png;base64,...">形式を用いて表示されているWEBページ上の画像を同じく当該フォームへD&Dすること。
44
44
 
@@ -64,7 +64,7 @@
64
64
 
65
65
  ### 発生している問題・エラーメッセージ
66
66
 
67
- まずは上記の手作りフォームを介した動作をJavaScriptを用いて実現し、そこから**DatURIスキーム**へと発展させていこうと試行錯誤していますが、うまく動いてくれません。
67
+ まずは上記の手作りフォームを介した動作をJavaScriptを用いて実現し、そこから**DataURIスキーム**へと発展させていこうと試行錯誤していますが、うまく動いてくれません。
68
68
 
69
69
  そもそもがAjax関連の知識が十分でないのが原因の一つでもあります。
70
70
 
@@ -136,7 +136,7 @@
136
136
 
137
137
  ```
138
138
 
139
- まだ勉強中なのですが、最終的に**DatURI**から**Blob**へ変換し、
139
+ まだ勉強中なのですが、最終的に**DataURI**から**Blob**へ変換し、
140
140
 
141
141
 
142
142
 

1

誤送信のため

2019/06/08 11:00

投稿

torigara
torigara

スコア12

test CHANGED
File without changes
test CHANGED
@@ -8,17 +8,23 @@
8
8
 
9
9
  現在表示中のページ内の画像に対して、手間なくGoogle類似画像検索を行うためのブックマークレットを作っております。
10
10
 
11
+ 『ページ内の画像に対して、クリックすると当該画像に基づく検索ページに飛ぶこと』を目標としています。
11
12
 
12
13
 
14
+
13
- **httpスキーム**を用いた通常の画像(<img src="http://...">)に関しては、
15
+ 現状、**httpスキーム**を用いた通常の画像(<img src="http://...">)に関しては、
14
16
 
15
17
  "__https://www.google.co.jp/searchbyimage?hl=ja&lr=lang_ja&safe=off&image_url={url}__"
16
18
 
17
- リクエストすれば意図したおりの検索ページに飛ぶことができます。
19
+ リクエストするこ検索ページに飛ぶことができ、意図したとおりに動作するところでコードが書けております。
18
20
 
19
21
 
20
22
 
21
23
  一方で、表題にある通り**DatURIスキーム**を用いた画像(<img src="data:image/png;base64,...">)に関しては、上記にあてはめるだけではうまくいきません。
24
+
25
+
26
+
27
+ 以下のように試行錯誤をしてみましたが、うまくいかないのでアドバイスをお願いします。
22
28
 
23
29
 
24
30
 
@@ -28,13 +34,29 @@
28
34
 
29
35
 
30
36
 
31
- Google側が、DatURIスキームを用いた画像の受け入れに対応していることは、以下の試行により確認しております。
37
+ Google側が、**DatURIスキーム**を用いた画像の受け入れに対応していることは、以下の試行により確認しております。
32
38
 
33
39
 
34
40
 
35
- 1.[Google画像検索のトップページ](https://www.google.co.jp/imghp)のフォームより、DatURIスキームを用いた画像のURIを直接入力し送信すること。
41
+ 0. [Google画像検索のトップページ](https://www.google.co.jp/imghp)のフォームより、DatURIスキームを用いた画像のURIを直接入力し送信すること。
36
42
 
37
- 2.同じく当該フォームへ、<img src="data:image/png;base64,...">形式を用いWEBページよりD&Dすること。
43
+ 0. <img src="data:image/png;base64,...">形式を用いて表示されているWEBページ上の画像を同じく当該フォームへD&Dすること。
44
+
45
+
46
+
47
+ また、GoogleのHTMLソースを参考にして、以下のフォームにてローカルファイルを元にした検索が行えることは確認しました。
48
+
49
+ ```HTML
50
+
51
+ <form id="form" action="https://www.google.com/searchbyimage/upload" method="POST" enctype="multipart/form-data">
52
+
53
+ <input id="file" type="file" name="encoded_image">
54
+
55
+ <input type="submit" value="submit">
56
+
57
+ </form>
58
+
59
+ ```
38
60
 
39
61
 
40
62
 
@@ -42,22 +64,88 @@
42
64
 
43
65
  ### 発生している問題・エラーメッセージ
44
66
 
67
+ まずは上記の手作りフォームを介した動作をJavaScriptを用いて実現し、そこから**DatURIスキーム**へと発展させていこうと試行錯誤していますが、うまく動いてくれません。
45
68
 
69
+ そもそもがAjax関連の知識が十分でないのが原因の一つでもあります。
70
+
71
+
72
+
73
+ > エラーの原因は、「CORS ヘッダー ‘Access-Control-Allow-Origin’ が足りない」とのことです
74
+
75
+ ```HTML
76
+
77
+ <form id="form" action="https://www.google.com/searchbyimage/upload" method="POST" enctype="multipart/form-data">
78
+
79
+ <input id="file" type="file" name="encoded_image">
80
+
81
+ <input type="submit" value="submit">
82
+
83
+ </form>
84
+
85
+ <input id="submitByAjax" type="button" value="submitByAjax">
86
+
87
+
88
+
89
+ <script>
90
+
91
+ // jQuery is loaded
92
+
93
+ $(function() {
94
+
95
+ $('#submitByAjax').on('click', function() {
96
+
97
+ // FormData オブジェクトを作成
98
+
99
+ var formData = new FormData($('#form')[0]);
100
+
101
+
102
+
103
+ // Ajaxで送信
104
+
105
+ $.ajax({
106
+
107
+ url: 'https://www.google.com/searchbyimage/upload',
108
+
109
+ method: 'POST',
110
+
111
+ data: formData,
112
+
113
+ processData: false,
114
+
115
+ contentType: false
116
+
117
+ })
118
+
119
+ .done(function(res) {
120
+
121
+ console.log('SUCCESS', res);
122
+
123
+ })
124
+
125
+ .fail(function(jqXHR, textStatus, errorThrown) {
126
+
127
+ console.log('ERROR', jqXHR, textStatus, errorThrown);
128
+
129
+ });
130
+
131
+ });
132
+
133
+ });
134
+
135
+ </script>
46
136
 
47
137
  ```
48
138
 
139
+ まだ勉強中なのですが、最終的に**DatURI**から**Blob**へ変換し、
140
+
141
+
142
+
49
- エラーメッセージ
143
+ ```JS
144
+
145
+ formData.append('encoded_image', /* Blob */);
50
146
 
51
147
  ```
52
148
 
149
+ のような形で実現できるのでは?と愚考しています。
53
150
 
54
-
55
- ### 該当のソースコード
151
+ つたない説明ですが、よろしくお願いします。
56
-
57
-
58
-
59
- ```ここに言語名を入力
60
-
61
- ソースコード
62
-
63
- ```