使用动态名称保存许多图像

时间:2011-12-30 10:09:08

标签: c++ image

我需要保存从相机中捕获的图像 “D:\ storage \ img1”然后我按“s”另一次,程序应该保存 “D:\ storage \ img2”然后 “d:\存储\ IMG3” 所以每次按下自定义键时,它都会保存一个不同名称的图像。 怎么做?

感谢您的所有回复

2 个答案:

答案 0 :(得分:0)

启动时,使用“img *。*”掩码迭代文件夹 - 如何执行此操作取决于文件系统API。使用字符串函数或循环来提取表示数字的文件名部分并将其转换为int。每次需要保存文件时,在int中加1,转换回number-string&然后连接路径,“img”,数字字符串和扩展来组装新的文件规范。

答案 1 :(得分:0)

此代码将int i的值连接(添加)到string filename。这是通过IntToStr()完成的。并且int i0循环到20,从而创建了“动态名称”。

文件输出:

PhotoImage0.txt PhotoImage1.txt PhotoImage2.txt .. .. PhotoImage19.txt

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;

string IntToStr(int n) 
{
    stringstream result;
    result << n;
    return result.str();
}

int main () 
{
    ofstream PhotoImageFile;
    int Number_of_files=20;
    string filename;


  for (int i=0;i<Number_of_files;i++)
  {
        filename="c:\\PhotoImage" + IntToStr(i) +".txt";
        cout<< filename << "  \n";

        PhotoImageFile.open(filename.c_str());
        PhotoImageFile << filename<<" : Writing this to a file.\n";
        PhotoImageFile.close();
  }


  return 0;
}