我将通过提供的file_path加载图像,然后对其进行降采样然后保存。整个过程应该在android设备上完成。
我在将图像加载到设备上并转换为halide :: buffer时遇到麻烦。
如果我像这样使用Halide :: Tools :: load_image不能在android上运行
JNIEXPORT bool JNICALL Java_com_example_boxdownsample_MainActivity_downsample(
JNIEnv *env, jobject obj, jstring file_path) { ...
const char *path = env->GetStringUTFChars(file_path, NULL);
std::string work_path = path;
LOGD("the path is:%s", path);
std::string input_file = work_path + "input.png";
std::string output_file = work_path + "output.png";
Halide::Buffer<uint16_t> input = Halide::Tools::load_image(input_file);//load_image didn't work ....
int ret = box_downsample_halide(input, downsample_factor, output_u16); //box_downsample_halide is a static lib generated by halide generator
... } }
那么,我使用错了吗?要么 我应该使用java(它将是位图格式)加载它,然后将其编码为halide :: buffer,但这似乎有点困难和间接。
有没有更简单的方法?
谢谢!
更新: 我找到了一种方法,以防万一谁也需要此方法,请转到我的github