android jni保存图片

目录

CMakeLists.txt

获取保存目录:

[c++ jni 保存图片 到程序目录:](#c++ jni 保存图片 到程序目录:)

[pull 单个文件:](#pull 单个文件:)

pull目录:


测试保存Ok:

CMakeLists.txt

bash 复制代码
project(mediapipehand)

cmake_minimum_required(VERSION 3.10)

# 设置OpenCV路径 - 指向D盘根目录下的opencv目录
set(OpenCV_DIR B:/soft/android/opencv-4.12.0-android-sdk/OpenCV-android-sdk/sdk/native/jni)
find_package(OpenCV REQUIRED core imgproc imgcodecs)

# 设置ncnn路径 - 指向D盘根目录下的ncnn目录
set(ncnn_DIR ${CMAKE_SOURCE_DIR}/ncnn-20221128-android-vulkan/${ANDROID_ABI}/lib/cmake/ncnn)
find_package(ncnn REQUIRED)

add_library(mediapipehand SHARED mediapipehand.cpp hand.cpp landmark.cpp ndkcamera.cpp cls_mobilenet.cpp)

target_link_libraries(mediapipehand ncnn ${OpenCV_LIBS} camera2ndk mediandk)

获取保存目录:

java 复制代码
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
            var aaa=1
        } else {
            // Android 9 及以下
            var aaa=2
        }

        val dir = getExternalFilesDir(Environment.DIRECTORY_PICTURES) // app 专属目录
        val file = File(dir, "hand_crop.jpg")
        val path = file.getAbsolutePath()

c++ jni 保存图片 到程序目录:

文件管理器可以看到

cpp 复制代码
#include <string>
#include <chrono>
#include <iomanip>
#include <sstream>



        // 裁剪手部区域
        cv::Mat hand_crop = rgb(bbox).clone();

        cv::Mat img_rgb;
        // 转换BGR到RGB
        cv::cvtColor(hand_crop, img_rgb, cv::COLOR_BGR2RGB);

        auto now = std::chrono::system_clock::now();
        auto now_time = std::chrono::system_clock::to_time_t(now);
        std::stringstream time_ss;
        time_ss << std::put_time(std::localtime(&now_time), "m%d_%H%M");

        std::string temp_path = "/storage/emulated/0/Android/data/com.example.classroom/files/Pictures/hand_" +
                    time_ss.str() + "_" + std::to_string(img_num) + ".jpg";

        img_num++;

        if (cv::imwrite(temp_path, img_rgb)) {
            __android_log_print(ANDROID_LOG_INFO, "FileSave", "Saved to: %s", temp_path.c_str());
        }
		

pull 单个文件:

bash 复制代码
adb pull /storage/emulated/0/Android/data/com.example.classroom/files/Pictures/hand_crop.jpg .

pull目录:

bash 复制代码
adb pull /storage/emulated/0/Android/data/com.example.classroom/files/Pictures/ .
相关推荐
胖大师4 小时前
Android Audio-FW
android
kayyoo6 小时前
CoordinatorLayout解析(二): 结合CollapsingToolbarLayout实现Toolbar折叠效果
android
数据知道7 小时前
移动端渗透测试流程:Android APK 逆向与动态调试
android·web安全·网络安全
我命由我123459 小时前
人脸识别 - 勒克斯(光线照射到物体表面上的明亮程度)
android·java·学习·java-ee·人脸识别·学习方法·android runtime
聚美智数9 小时前
护照OCR识别-护照图像识别-护照OCR文字识别-护照识别OCR-护照信息识别-护照OCR
android·ocr
码农coding11 小时前
android12 点击桌面应用图标启动Activity流程
android
johnsong12 小时前
深度拆解:150M循环模型如何用循环推理击败大Transformer
android·深度学习·transformer
CedarQR13 小时前
云卓 G20 遥控器 Android 开发实录:从 USB 设备到读取摇杆/按键通道值
android·linux·无人机
pengyu13 小时前
【Kotlin 协程修仙录 · 炼虚境 · 初阶】 | 虚空造物:Channel 基础与协程间通信的管道艺术
android·前端·kotlin
小强闯江湖13 小时前
ViewCompose:让原生 Android View 进入声明式时代
android·开源·kotlin