C++ CImage::加载can';不要加载图像
我在MSDN上编写代码作为指导,但它不起作用。它无法加载图像并将图像另存为bmpC++ CImage::加载can';不要加载图像,c++,image,C++,Image,我在MSDN上编写代码作为指导,但它不起作用。它无法加载图像并将图像另存为bmp #include "stdafx.h" #include "atlimage.h" #include "cstdio" #include "fstream" int _tmain(int argc, _TCHAR* argv[]) { CImage m_image1; CImage m_image2; char *srcFile = "C:\\Users\\TYZRPVX\\Desktop
#include "stdafx.h"
#include "atlimage.h"
#include "cstdio"
#include "fstream"
int _tmain(int argc, _TCHAR* argv[])
{
CImage m_image1;
CImage m_image2;
char *srcFile = "C:\\Users\\TYZRPVX\\Desktop\\test.jpg";
const char *tarFile = "C:\\Users\\TYZRPVX\\Desktop\\testBmp.bmp";
FILE *tar;
fopen_s(&tar, tarFile, "w");
m_image1.Load((LPCTSTR)(srcFile));
//m_image1.Save(_T("C:\\Users\\TYZRPVX\\Desktop\\testBmp.bmp"));
m_image1.Save(_T("C:\\Users\\TYZRPVX\\Desktop"),Gdiplus::ImageFormatBMP);
return 0;
}
您可能是在使用启用了Unicode的情况下进行编译的,在Visual Studio中创建新项目时,默认使用Unicode。这使得您对
LPCTSTR
的转换不正确。对文件名使用宽字符串并删除强制转换
const wchar_t *srcFile = L"C:\\Users\\TYZRPVX\\Desktop\\test.jpg";
const wchar_t *bmpFile = L"C:\\Users\\TYZRPVX\\Desktop\\testBmp.bmp";
m_image1.Load(srcFile);
m_image1.Save(bmpFile, Gdiplus::ImageFormatBMP);
你说“它不起作用”是什么意思?您是否收到错误消息?请尝试以下操作:
m\u image1.Save(\u T(“C:\\Users\\TYZRPVX\\Desktop\\test.bmp”)、Gdiplus::ImageFormatBMP)代码>代码中的输出文件名不正确。顺便问一下,为什么这里需要文件*
变量?似乎是无关的,那是C还是C++,请决定。目前看来两者都不是。