GDI+在循环中只保存一次图像
GDI+ saving image only once in the loop
我是这个库的新手。我想把所有的gif文件都转换成tif。以下是我的代码。它只保存了第一次,然后抛出状态=2(无效参数)。请帮我
do {
if (!(ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
wstring str(ffd.cFileName);
str = gifDir1 + str;
const wchar_t *filename = str.c_str();
Image *image = new Image(ffd.cFileName);
wstring str2(ffd.cFileName);
wstring::size_type found = str2.find(L".gif");
str2.replace(found, str2.length(), L".tif");
str2 = tifDir + str2;
const wchar_t *dstfilename = str2.c_str();
stat = image->Save(dstfilename, &encoderClsid, NULL);
if (stat == Ok)
printf("File was saved successfullyn");
else
printf("Failure: stat = %dn", stat);
delete image;
}
} while (FindNextFileW(hFind, &ffd) != 0);
GdiplusShutdown(gdiplusToken);
return 0;
}
std::string::replace
的第二个参数是要替换的字符数,而不是字符串的长度。因此,您可能会出现缓冲区溢出,这会扰乱其他内存(例如,encoderClsid
)。
相关文章:
- 我是否需要在下一次转移时将所有权*转移回转移队列
- 使用仅使用一次的变量调用的复制构造函数.这可能是通过调用move构造函数进行编译器优化的情况吗
- 在C++中一次将矢量值写入多个文件
- 循环中的条件:为什么每次都调用strlen(),而vector.size()只调用一次
- 为什么 zlib 放气初始化调用一次不起作用?
- 在一次迭代中从 txt 文件中读取多行
- 为什么无论你输入什么,这"while(cin.get(str,3))"只运行一次?
- 在头文件和 cpp 文件中使用一次 #pragma 时出现结构重定义错误
- 有没有办法一次声明相同类型的多个对象,并通过一个表达式立即使用相同的右值初始化它们?
- 高级选择排序 - 在一次迭代中搜索两个元素
- 具有相同特征的两个对象是否只在内存中存储一次?无论定义它们的函数是什么,都是不同的
- 如何仅使用一次固定<<设置精度(2)?或者至少恢复到默认行为?
- 什么是仅调用一次并调用参数的控制台应用
- 如何确保用户在一行上提示输入一次时输入名字和姓氏?
- 访问随机图像像素的快速方法,最多一次
- 如何在视频序列中识别一次图像?
- 在python openCV中一次将许多图像读入内存
- C++ 和 SDL 一次在屏幕上显示的图像不能超过 3 张
- GDI+在循环中只保存一次图像
- 如何同步每20毫秒更新一次的接收图像