c++ - 将位图保存到从中加载的同一文件

标签 c++ .net windows bitmap

我正在尝试保存 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/

相关文章:

c++ - 是否有 "simple"方法让 ld 输出 demangle 函数名称?

.net - 在 Win Forms NotifyIcon 上禁用 Alt-F4

c# - 使用 LINQ 对对象进行分页

c++ - 迭代器(std::map)在 C++ 中是如何工作的?

c++ - 在 Arduino 环境中启用异常

c++ - 从函数返回 vector 以打印内容

c# - 在 .NET 中通过线路移动对象时哪种方法最有效?

python - 在 Windows 机器上运行 python 与 Linux

c# - 将 ASP.NET 4 Web 应用程序部署到 IIS6 服务器后,工作进程回收导致其大部分时间停止工作

c - 为什么这个 SIMD 示例代码可以使用 minGW 进行 C 编译,但可执行文件无法在我的 Windows 计算机上运行?