質問編集履歴

1

ファイルの保存を追記

2020/04/17 20:43

投稿

tukim
tukim

スコア8

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
- ファイル名が入るということでString型のString[]{resultUri.getPath()},を入れてみましたがだめでした。
299
+ ファイル名には日付で作られたものが入る様にしましたが、保存処理どうてもエラーが出てしまいました。