c++ 获取指定路径的图片拷贝至单独的文件夹
时间: 2024-09-20 16:14:56 浏览: 44
Linux C++ 实现文件夹或文件拷贝(可直接编译运行)
在C++中,获取指定路径的图片并复制到单独的文件夹通常需要使用一些库函数来处理文件操作和图像I/O。这里我们可以借助`std::filesystem`库(C++17及以上版本可用)来进行文件管理,`Poco`、`OpenCV`等库来读取和操作图像。以下是一个简单的示例:
```cpp
#include <iostream>
#include <filesystem> // C++17引入的库用于文件系统操作
#include <opencv2/opencv.hpp> // OpenCV库用于读取和操作图片
// 定义源图片路径和目标文件夹路径
const std::string srcImagePath = "path_to_your_image.jpg";
const std::string destFolder = "path_to_your_destination_folder";
int main() {
try {
// 检查目标文件夹是否存在,如果不存在则创建
if (!std::filesystem::exists(destFolder)) {
std::filesystem::create_directory(destFolder);
}
// 使用OpenCV读取图片
cv::Mat img = cv::imread(srcImagePath, cv::IMREAD_COLOR); // 根据需求选择颜色模式
if (img.empty()) { // 如果图片无法读取,输出错误信息
std::cerr << "Error reading image at path: " << srcImagePath << std::endl;
return -1;
}
// 创建新的文件名(例如原文件名+时间戳)
auto timestamp = std::chrono::system_clock::now().time_since_epoch().count();
std::string destFileName = std::to_string(timestamp) + ".jpg"; // 或者其他格式
// 构造完整的目标文件路径
std::string destFilePath = destFolder + "/" + destFileName;
// 将图片保存到新路径
cv::imwrite(destFilePath, img);
std::cout << "Copied image successfully to: " << destFilePath << std::endl;
} catch (const std::exception& e) {
std::cerr << "An error occurred: " << e.what() << std::endl;
}
return 0;
}
```
阅读全文