Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CImage::加载can';不要加载图像_C++_Image - Fatal编程技术网

C++ CImage::加载can';不要加载图像

C++ 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

我在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\\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++,请决定。目前看来两者都不是。