赞
踩
参考项目地址 GitHub - nihui/ncnn-android-yolov5
布局文件main.xml 里面增加一个Button用来保存识别图片之后的结果图
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="#6B8E23">
-
- <LinearLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
-
- <Button
- android:id="@+id/buttonImage"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="选图" />
-
- <Button
- android:id="@+id/buttonDetect"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="识别-cpu" />
-
- <Button
- android:id="@+id/buttonDetectGPU"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="识别-gpu" />
- <Button
- android:id="@+id/buttonSave"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="保存结果" />
- </LinearLayout>
-
- <ImageView
- android:id="@+id/imageView"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_weight="1" />
-
- </LinearLayout>

AndroidManifest.xml 里面增加权限申请
- <!-- 往SDCard写入数据权限 -->
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
- <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" tools:ignore="ProtectedPermissions" />
MainActivity.java 里面重写public void onCreate(),在Button buttonDetectGPU代码块的后面增加一个Button类型按钮,注册监听器,并调用saveBitmap()方法。
- Button buttonSave = (Button) findViewById(R.id.buttonSave);
- buttonSave.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- if (yourSelectedImage == null)
- return;
- saveBitmap(bitmap);
- }
- });
增加saveBitmap()方法,需要传一个Bitmap类型的参数进去。
- public void saveBitmap(Bitmap bitmap) {
- new Thread(new Runnable() {
- @Override
- public void run() {
- try {
- // 保存图片到SD卡上
- File file = new File(Environment.getExternalStorageDirectory().getPath() + File.separator + String.valueOf(System.currentTimeMillis()) + "SS.jpg");
- FileOutputStream stream = new FileOutputStream(file);
- // compress - 压缩的意思
- bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
- //存储完成后需要清除相关的进程
- stream.flush();
- stream.close();
- Toast.makeText(MainActivity.this, "保存图片成功", Toast.LENGTH_LONG).show();
- } catch (Exception e) {
- Toast.makeText(MainActivity.this, "保存图片失败", Toast.LENGTH_LONG).show();
- e.printStackTrace();
- }
- }
- }).start();
- }

最后,不知道哪里的问题,还是没有实现保存功能。可能是传参数bitmap不对劲。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。