我正在尝试保存 Bitmap到我从中加载它的同一个文件。但是我无法这样做。我知道 .save() 函数的文档说“不要将图像保存到用于构造图像的同一流中。这样做可能会损坏流”,并认为这是我的问题的原因。 例如,如果我加载图像“a.jpg”,我无法将修改后的文件保存回“a.jpg”,我必须更改文件名。
这是我加载图片的代码:
std::string fullPath = imgFolderPath + "\\" + imageFileNames[i];
std::wstring wstr(fullPath.begin(), fullPath.end());
Bitmap* bitmap = new Bitmap(wstr.c_str());
我保存图像的代码是:
bitmap->Save(wstr.c_str(), &clsid, NULL);
当文件名不同时,这工作正常。有没有办法可以写入同一图像?我宁愿“更新”图像,也不愿完全创建一个新图像。
最佳答案
只要将图像存储到缓冲区中,为什么不直接删除图像 ex.'system("rm foo.png")' 然后写入?
关于c++ - 将位图保存到从中加载的同一文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31296807/