質問編集履歴
1
ファイルの保存を追記
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
AndroidStudioでギャラリーから取得した画像をopencv
|
1
|
+
AndroidStudioでギャラリーから取得した画像をファイル保存しopencvに読み込みたい
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
### 前提・実現したいこと
|
1
|
+
---### 前提・実現したいこと
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
MainActivityから画面遷移したのちに
|
8
8
|
|
9
|
-
https://qiita.com/yukiyamadajp/items/137d15a4e65ed2308787
|
9
|
+
[リンク内容](https://qiita.com/yukiyamadajp/items/137d15a4e65ed2308787)
|
10
10
|
|
11
11
|
こちらの記事を参考にギャラリーから画像を取得し標示することはできました。
|
12
12
|
|
@@ -14,7 +14,9 @@
|
|
14
14
|
|
15
15
|
mat_src = Imgcodecs.imread()
|
16
16
|
|
17
|
-
この際のimreadにファイル名を入れると思うのですが取得した画像のファイル名がわかりません。
|
17
|
+
この際のimreadにファイル名を入れると思うのですが取得した画像のファイル名がわかりません。 mbitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
|
18
|
+
|
19
|
+
このmbitmapの部分がどうしてもエラーになってしまいます。
|
18
20
|
|
19
21
|
|
20
22
|
|
@@ -32,6 +34,8 @@
|
|
32
34
|
|
33
35
|
import android.content.Intent;
|
34
36
|
|
37
|
+
import android.graphics.Bitmap;
|
38
|
+
|
35
39
|
import android.media.MediaScannerConnection;
|
36
40
|
|
37
41
|
import android.net.Uri;
|
@@ -40,8 +44,12 @@
|
|
40
44
|
|
41
45
|
import android.os.Bundle;
|
42
46
|
|
47
|
+
import android.os.Environment;
|
48
|
+
|
43
49
|
import android.provider.MediaStore;
|
44
50
|
|
51
|
+
import android.util.Log;
|
52
|
+
|
45
53
|
import android.view.View;
|
46
54
|
|
47
55
|
import android.widget.Button;
|
@@ -56,6 +64,16 @@
|
|
56
64
|
|
57
65
|
|
58
66
|
|
67
|
+
import java.io.File;
|
68
|
+
|
69
|
+
import java.io.FileOutputStream;
|
70
|
+
|
71
|
+
import java.text.SimpleDateFormat;
|
72
|
+
|
73
|
+
import java.util.Date;
|
74
|
+
|
75
|
+
|
76
|
+
|
59
77
|
public class SettingActivity extends AppCompatActivity {
|
60
78
|
|
61
79
|
|
@@ -202,20 +220,74 @@
|
|
202
220
|
|
203
221
|
|
204
222
|
|
223
|
+
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
}
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
try {
|
236
|
+
|
237
|
+
// sdcardフォルダを指定
|
238
|
+
|
239
|
+
File root = Environment.getExternalStorageDirectory();
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
// 日付でファイル名を作成
|
244
|
+
|
245
|
+
Date mDate = new Date();
|
246
|
+
|
247
|
+
SimpleDateFormat fileName = new SimpleDateFormat("yyyyMMdd_HHmmss");
|
248
|
+
|
249
|
+
|
250
|
+
|
251
|
+
// 保存処理開始
|
252
|
+
|
253
|
+
FileOutputStream fos = null;
|
254
|
+
|
255
|
+
fos = new FileOutputStream(new File(root, fileName.format(mDate) + ".jpg"));
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
// jpegで保存
|
260
|
+
|
261
|
+
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
// 保存処理終了
|
266
|
+
|
267
|
+
fos.close();
|
268
|
+
|
269
|
+
|
270
|
+
|
205
271
|
//OpenCVに読み込み
|
206
272
|
|
207
273
|
Mat mat_src = new Mat();
|
208
274
|
|
209
|
-
mat_src = Imgcodecs.imread()
|
275
|
+
mat_src = Imgcodecs.imread(fileName.format(mDate) + ".jpg");
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
276
|
+
|
277
|
+
|
278
|
+
|
215
|
-
|
279
|
+
} catch (Exception e) {
|
280
|
+
|
281
|
+
Log.e("Error", "" + e.toString());
|
216
282
|
|
217
283
|
}
|
218
284
|
|
285
|
+
|
286
|
+
|
287
|
+
}
|
288
|
+
|
289
|
+
|
290
|
+
|
219
291
|
```
|
220
292
|
|
221
293
|
|
@@ -224,4 +296,4 @@
|
|
224
296
|
|
225
297
|
|
226
298
|
|
227
|
-
ファイル名が入る
|
299
|
+
ファイル名には日付で作られたものが入る様にしましたが、保存処理でどうしてもエラーが出てしまいました。
|